Java Tutorial/XML/Comment

Материал из Java эксперт
Перейти к: навигация, поиск

Add a comment at the beginning of the document

   <source lang="java">

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.rument; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class Main {

 public static void main(String[] argv) throws Exception {
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   factory.setValidating(true);
   factory.setExpandEntityReferences(false);
   Document doc = factory.newDocumentBuilder().parse(new File("filename"));
   Element element = doc.getDocumentElement();
   Comment comment = doc.createComment("A Document Comment");
   element.getParentNode().insertBefore(comment, element);
 }

}</source>





Find all elements with the name "entry" and append a comment

   <source lang="java">

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.rument; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; public class Main {

 public static void main(String[] argv) throws Exception {
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   factory.setValidating(true);
   factory.setExpandEntityReferences(false);
   Document doc = factory.newDocumentBuilder().parse(new File("filename"));
   NodeList list = doc.getElementsByTagName("entry");
   for (int i = 0; i < list.getLength(); i++) {
     Element element = (Element) list.item(i);
     Comment comment = doc.createComment("index=" + i);
     element.getParentNode().insertBefore(comment, element.getNextSibling());
   }
 }

}</source>





Ignoring Comments While Parsing an XML File

   <source lang="java">

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class Main {

 public static void main(String[] argv) throws Exception{
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   factory.setIgnoringComments(true);
   Document doc = factory.newDocumentBuilder().parse(new File("infilename.xml"));
 }

}</source>





Insert a comment in front of the element node

   <source lang="java">

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.rument; import org.w3c.dom.Document; import org.w3c.dom.Element; public class Main {

 public static void main(String[] argv) throws Exception {
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   factory.setValidating(true);
   factory.setExpandEntityReferences(false);
   Document doc = factory.newDocumentBuilder().parse(new File("filename"));
   Element element = doc.getElementById("key1");
   element = doc.createElement("root");
   doc.appendChild(element);
   Comment comment = doc.createComment("a comment");
   doc.insertBefore(comment, element);
 }

}</source>





"--" must never appear in the text used to create the comment

   <source lang="java">

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.rument; import org.w3c.dom.Document; public class Main {

 public static void main(String[] argv) throws Exception {
   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   factory.setValidating(true);
   factory.setExpandEntityReferences(false);
   Document doc = factory.newDocumentBuilder().parse(new File("filename"));
   Comment comment = doc.createComment("invalid -- comment");
   boolean validComment = comment.getNodeValue().indexOf("--") < 0;
 }

}</source>