[Java] package cn. xue. xml; import java. io. fileOutputStream; import java. io. IOException; import javax. xml. parsers. documentBuilder; import javax. xml. parsers. documentBuilderFactory; import javax. xml. parsers. parserConfigurationException; import javax. xml. transform. transformer; import javax. xml. transform. transformerFactory; import javax. xml. transform. dom. DOMSource; import javax. xml. transform. stream. streamResult; import org. junit. test; import org. w3c. dom. document; import org. w3c. dom. element; import org. w3c. dom. node; import org. w3c. dom. nodeList; import org. xml. sax. SAXException; // use dom to perform crud public class Test2 on the xml document {// read the xml document: <title> JavaScript webpage development </title> node value @ Test public void read1 () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); NodeList list = document. getElementsByTagName ("name"); Node node = list. item (1); String content = node. getTextContent (); System. out. println (content);} // obtain all tags in the xml document @ Test public void read2 () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); // get the root Node root = document. getElementsByTagName ("bookshelf "). item (0); list (root);} private void list (Node node) {if (node instanceof Element) {System. out. println (node. getNodeName ();} NodeList list = node. getChildNodes (); for (int I = 0; I <list. getLength (); I ++) {Node child = list. item (I); list (child) ;}// get the tag attribute value in the xml document: <title name = "xxxx"> Java Employment Training tutorial </title> @ Test public void read3 () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); Element bookname = (Element) document. getElementsByTagName ("name "). item (0); String value = bookname. getAttribute ("name"); System. out. println (value);} // Add a node to the xml document: <price> 59.00 RMB </price> @ Test public void add1 () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); // create a node Element price = document. createElement ("price"); price. setTextContent ("59.00 RMB"); // The node is mounted to the first book. Element book = (Element) document. getElementsByTagName (" "). item (0); book. appendChild (price); // write the updated memory back to the xml file TransformerFactory tffacloud = TransformerFactory. newInstance (); Transformer tf = tffacloud. newTransformer (); tf. transform (new DOMSource (document), new StreamResult (new FileOutputStream ("src/book. xml ");} // insert a node to a specified position in the xml document: <price> 59.00 RMB </price> @ Test public void add2 () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); // create a node Element price = document. createElement ("price"); price. setTextContent ("59.00 RMB"); // obtain the reference node Element refNode = (Element) document. getElementsByTagName ("price "). item (0); // get the node Element book = (Element) document. getElementsByTagName (" "). item (0); // mount the cursor to the specified position of the book node. insertBefore (price, refNode); // write the updated memory back to the xml file TransformerFactory tffactory = TransformerFactory. newInstance (); Transformer tf = tffacloud. newTransformer (); tf. transform (new DOMSource (document), new StreamResult (new FileOutputStream ("src/book. xml ");} // Add attributes to the xml document node: <title> Java Employment Training tutorial </title> Add name = "xxxx" attribute @ Test public void addAttr () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); Element bookname = (Element) document. getElementsByTagName ("name "). item (0); bookname. setAttribute ("name", "xxxx"); // write the updated memory back to the xml file TransformerFactory tffactory = TransformerFactory. newInstance (); Transformer tf = tffacloud. newTransformer (); tf. transform (new DOMSource (document), new StreamResult (new FileOutputStream ("src/book. xml ");} @ Test public void delete1 () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); // get the node to be deleted Element e = (Element) document. getElementsByTagName ("price "). item (0); // get the father Element book to delete the node = (Element) document. getElementsByTagName (" "). item (0); // Delete the child book again. removeChild (e); // write the updated memory back to the xml file TransformerFactory tffacloud = TransformerFactory. newInstance (); Transformer tf = tffacloud. newTransformer (); tf. transform (new DOMSource (document), new StreamResult (new FileOutputStream ("src/book. xml ");} // Delete the entire xml document @ Test public void delete2 () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); // get the node to be deleted Element e = (Element) document. getElementsByTagName ("price "). item (0); e. getParentNode (). getParentNode (). getParentNode (). removeChild (e. getParentNode (). getParentNode (); // write the updated memory back to the xml file TransformerFactory tffacloud = TransformerFactory. newInstance (); Transformer tf = tffacloud. newTransformer (); tf. transform (new DOMSource (document), new StreamResult (new FileOutputStream ("src/book. xml ");} @ Test public void update () throws Exception {DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance (); DocumentBuilder builder = factory. newDocumentBuilder (); Document document = builder. parse ("src/book. xml "); Element e = (Element) document. getElementsByTagName ("price "). item (0); e. setTextContent ("109.00 RMB"); // write the updated memory back to the xml file TransformerFactory tffacloud = TransformerFactory. newInstance (); Transformer tf = tffacloud. newTransformer (); tf. transform (new DOMSource (document), new StreamResult (new FileOutputStream ("src/book. xml ")));}}