Java/XML/Processing Instruction
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>