Adding a Comment to a DOM Document

When creating a comment node, the string `--' must never appear in the comment text. The default XML writers in J2SE 1.4 will output the comment text with the `--' and therefore generate invalid XML.
// Obtain an XML document; this method is implemented in // The Quintessential Program to Create a DOM Document from an XML File Document doc = parseXmlFile("infilename.xml", false); // Add a comment at the beginning of the document Element element = doc.getDocumentElement(); Comment comment = doc.createComment("A Document Comment"); element.getParentNode().insertBefore(comment, element); // Find all elements with the name "entry" and append a comment NodeList list = doc.getElementsByTagName("entry"); for (int i=0; i<list.getLength(); i++) { element = (Element)list.item(i); comment = doc.createComment("index="+i); // Add the comment after this element element.getParentNode().insertBefore(comment, element.getNextSibling()); } // "--" must never appear in the text used to create the comment comment = doc.createComment("invalid -- comment"); boolean validComment = comment.getNodeValue().indexOf("--") < 0;
This is the sample input for the example:
<?xml version="1.0" encoding="UTF-8"?> <map> <entry key="key1" value="value1" /> <entry key="key2" /> </map>
The resulting XML from running the example is:
<?xml version="1.0" encoding="UTF-8"?> <!--A Document Comment--><map> <entry key="key1" value="value1"/><!--index=0--> <entry key="key2"/><!--index=1--> </map>

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.