- From: Andy Quick <ac.quick@sympatico.ca>
- Date: Sat, 22 Apr 2000 12:04:31 -0400
- To: <html-tidy@w3.org>
- Cc: <smarks@digisolutions.com>
With the current version of Java tidy, the comment shows up in
the DOM tree as a COMMENT_NODE in both cases. I use the
following code to print out a representation of a DOM tree.
Andy Quick
>
> Note: the big difference is the comment element is treated properly in
> the second case. That is
> <!-- EM { font-family: garamond, serif; } A { text-decoration:
> none; } -->
> does show up as text node.
>
> So my question, perhaps bug, is why does the presence of the the Style
> induce what appears to be incorrect behavior. That is why does the
> presence of the STYLE tag cause the comment tag to be treated as a
> text node and not an element node.
import java.io.PrintWriter;
import java.io.FileInputStream;
import java.io.IOException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.tidy.Tidy;
public class PrintDOM {
/* --------------------- DEBUG -------------------------- */
private static final String[] nodeTypeString =
{
"dummy",
"ELEMENT_NODE",
"ATTRIBUTE_NODE",
"TEXT_NODE",
"CDATA_SECTION_NODE",
"ENTITY_REFERENCE_NODE",
"ENTITY_NODE",
"PROCESSING_INSTRUCTION_NODE",
"COMMENT_NODE",
"DOCUMENT_NODE",
"DOCUMENT_TYPE_NODE",
"DOCUMENT_FRAGMENT_NODE",
"NOTATION_NODE"
};
public String toString(Node n)
{
String s = "";
String v;
s += "[Node type=";
s += nodeTypeString[n.getNodeType()];
s += ",name=";
if (n.getNodeName() != null)
s += n.getNodeName();
else
s += "null";
s += ",value=";
v = n.getNodeValue();
if (v != null) {
v = v.replace('\n', '|');
s += v;
} else {
s += "null";
}
s += ",children=";
NodeList children = n.getChildNodes();
if ( children != null ) {
int len = children.getLength();
for ( int i = 0; i < len; i++ ) {
s += toString(children.item(i));
if (i < len - 1)
s += ",";
}
if (len == 0)
s += "0";
} else {
s += "null";
}
s += "]";
return s;
}
/* --------------------- END DEBUG ---------------------- */
public static void main(String args[]) {
if ( args.length == 0 ) {
System.exit(1);
}
System.err.println(args[0]);
FileInputStream in;
Tidy tidy = new Tidy();
PrintDOM t = new PrintDOM();
try {
in = new FileInputStream(args[0]);
tidy.setXmlTags(true);
System.out.println("Tidy DOM tree");
System.out.print(t.toString(tidy.parseDOM(in, null)));
}
catch ( IOException e ) {
System.err.println( e.toString() );
}
catch ( Exception e ) {
System.err.println( e.toString() );
}
}
}
Received on Saturday, 22 April 2000 12:20:15 UTC