Java uses DOM to add, delete, modify, and query the XML document. domxml
This article focuses on the code for adding, deleting, modifying, and querying XML documents using DOM in java. The specific example is as follows.
Source code:
Package com. zc. homeWork18; import java. io. file; import javax. xml. parsers. documentBuilder; import javax. xml. parsers. documentBuilderFactory; import javax. xml. transform. transformer; import javax. xml. transform. transformerFactory; import javax. xml. transform. dom. DOMSource; import javax. xml. transform. stream. streamResult; import javax. xml. xpath. XPath; import javax. xml. xpath. XPathConstants; import javax. xml. xpath. XPa ThExpressionException; import javax. xml. xpath. XPathFactory; import org. w3c. dom. document; import org. w3c. dom. element; import org. w3c. dom. node; import org. w3c. dom. nodeList; public class XMLWriter {private static String xmlPath = "src \ com \ zc \ homeWork18 \ MyXml. xml "; public static void getFamilyMemebers () {/** create a file factory instance */DocumentBuilderFactory dbf = DocumentBuilderFactory. newInstance (); // If the created parser is in In XML documents, spaces in the element content must be deleted. The value is true. Otherwise, the value is false dbf. setIgnoringElementContentWhitespace (true); try {/** Create File object */DocumentBuilder db = dbf. newDocumentBuilder (); // create a parser to parse the XML Document doc = db. parse (xmlPath); // use dom to parse xml files/** calendar list, extract data from the XML file * // obtain all related nodes according to the node name NodeList sonlist = doc. getElementsByTagName ("son"); for (int I = 0; I <sonlist. getLength (); I ++) // cyclically processed object {// processing Element son = (El Ement) sonlist. item (I); // All subnodes IN THE son Node of the cyclic node for (node Node = son. getFirstChild (); node! = Null; node = node. getNextSibling () {// determine whether it is an element node if (node. getNodeType () = Node. ELEMENT_NODE) {String name = node. getNodeName (); String value = node. getFirstChild (). getNodeValue (); System. out. println (name + ":" + value) ;}}} catch (Exception e) {System. out. println (e. getMessage () ;}}// modify public static void modifySon () {// create a file factory instance DocumentBuilderFactory dbf = DocumentBuilderFactory. NewInstance (); dbf. setIgnoringElementContentWhitespace (true); try {// obtain the DOM document instance DocumentBuilder db = dbf from the XML document. newDocumentBuilder (); // obtain the Document Object Document xmldoc = db. parse (xmlPath); // get the root node Element root = xmldoc. getDocumentElement (); // locate the node Element with id 001 per = (Element) selectSingleNode ("/father/son [@ id = '001']", root ); // change the content of the age node to 28 per. getElementsByTagName ("age "). item (0 ). setTextCont Ent ("28"); // save TransformerFactory factory = TransformerFactory. newInstance (); Transformer former = factory. newTransformer (); former. transform (new DOMSource (xmldoc), new StreamResult (new File (xmlPath);} catch (Exception e) {System. out. println (e. getMessage () ;}// get the target node, delete it, and save the public static void discardSon () {DocumentBuilderFactory dbf = DocumentBuilderFactory. newInstance (); dbf. setIg NoringElementContentWhitespace (true); try {DocumentBuilder db = dbf. newDocumentBuilder (); Document xmldoc = db. parse (xmlPath); // get the root node Element root = xmldoc. getDocumentElement (); // locate the node Element son = (Element) selectSingleNode ("/father/son [@ id = '002']", root); // Delete the node root. removeChild (son); // save TransformerFactory factory = TransformerFactory. newInstance (); Transformer former = fac Invalid. newTransformer (); former. transform (new DOMSource (xmldoc), new StreamResult (new File (xmlPath);} catch (Exception e) {System. out. println (e. getMessage () ;}}// add public static void createSon () {// create a file factory instance DocumentBuilderFactory dbf = DocumentBuilderFactory. newInstance (); dbf. setIgnoringElementContentWhitespace (false); try {DocumentBuilder db = dbf. newDocumentBuilder (); // create a Document Object Document xmldoc = db. parse (xmlPath); // get the root node Element root = xmldoc. getDocumentElement (); // create a node son and set the corresponding id to 004 Element son = xmldoc. createElement ("son"); son. setAttribute ("id", "004"); // create a node name Element name = xmldoc. createElement ("name"); name. setTextContent ("Youngest son"); son. appendChild (name); // create a node age Element age = xmldoc. createElement ("age"); age. setTextContent ("0"); son. appendChild (age );/ /Add son to the root node as root. appendChild (son); // save TransformerFactory factory = TransformerFactory. newInstance (); Transformer former = factory. newTransformer (); former. transform (new DOMSource (xmldoc), new StreamResult (new File (xmlPath);} catch (Exception e) {System. out. println (e. getMessage () ;}}// modify Node information public static Node selectSingleNode (String express, Element source) {Node result = null; // create XPathFactory xpathFactory = XPathFactory. newInstance (); // create the XPath object XPath xpath = xpathFactory. newXPath (); try {result = (Node) xpath. evaluate (express, source, XPathConstants. NODE); System. out. println (result);} catch (XPathExpressionException e) {System. out. println (e. getMessage ();} return result;} // print public static void main (String [] args) {getFamilyMemebers (); System. out. println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ "); ModifySon (); System. out. println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ "); System. out. println ("modify data"); getFamilyMemebers (); System. out. println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ "); DiscardSon (); System. out. println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ "); System. out. println ("delete data"); getFamilyMemebers (); System. out. println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ "); CreateSon (); System. out. println ("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ "); System. out. println (" add data "); getFamilyMemebers ();}}
XML file
<? Xml version = "1.0" encoding = "UTF-8" standalone = "no"?> <Father> <son id = "001"> <name> boss </name> <age> 20 </age> </son> <son id = "002"> <name> Second Child </name> <age> 18 </age> </son> <son id = "003"> <name> old three </name> <age> 13 </age> </son> </father>
Summary
The above is all the content about the code of the instance for adding, deleting, modifying, and querying the XML document using DOM in java. I hope it will be helpful to you. If you are interested, you can continue to refer to other related topics on this site. If you have any shortcomings, please leave a message. Thank you for your support!