Java/XML/Processing Instruction

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

Adding a Processing Instruction to a DOM Document

   <source lang="java">
 

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.ProcessingInstruction; 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"));
   // Add a PI at the beginning of the document
   Element element = doc.getDocumentElement();
   ProcessingInstruction pi = doc.createProcessingInstruction("target", "instruction");
   element.getParentNode().insertBefore(pi, element);
 }

}


 </source>
   
  
 
  



Find all elements with the name "entry" and add a child PI

   <source lang="java">
 

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.ProcessingInstruction; 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();
   ProcessingInstruction pi = doc.createProcessingInstruction("target", "instruction");
   NodeList list = doc.getElementsByTagName("entry");
   for (int i = 0; i < list.getLength(); i++) {
     element = (Element) list.item(i);
     pi = doc.createProcessingInstruction("target", "instruction=" + i);
     element.appendChild(pi);
   }
 }

}


 </source>