Dom解析xml

DomParseTest.java

 1 package cn.pinnsvin;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.xml.parsers.DocumentBuilder;
 6 import javax.xml.parsers.DocumentBuilderFactory;
 7 import javax.xml.parsers.ParserConfigurationException;
 8 import javax.xml.transform.Result;
 9 import javax.xml.transform.Source;
10 import javax.xml.transform.Transformer;
11 import javax.xml.transform.TransformerException;
12 import javax.xml.transform.TransformerFactory;
13 import javax.xml.transform.dom.DOMSource;
14 import javax.xml.transform.stream.StreamResult;
15 
16 import org.junit.Test;
17 import org.w3c.dom.Document;
18 import org.w3c.dom.Node;
19 import org.w3c.dom.NodeList;
20 import org.xml.sax.SAXException;
21 
22 //Dom解析Xml
23 public class DomParseTest {
24     
25     @Test
26     public void domParse() throws Exception{
27         //获取DocumentBuilderFactory
28         DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
29         //获取DocumentBuilder
30         DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();
31         //通过documentBuilder解析xml文档获得Document对象
32         Document document = documentBuilder.parse("book.xml");
33         //通过元素的名字可以找到元素的集合
34         NodeList nodeList = document.getElementsByTagName("书名");
35         //找到第二个元素
36         Node node = nodeList.item(1);
37         //读出对应节点的文本内容
38         String content = node.getTextContent();
39         System.out.println(content);
40     }
41     
42     @Test
43     public void domModifyxml() throws ParserConfigurationException, SAXException, IOException, TransformerException{
44         DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
45         DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
46         Document document = documentBuilder.parse("book.xml");
47         NodeList nodeList = document.getElementsByTagName("价格");
48         Node node = nodeList.item(1);
49         node.setTextContent("99.00");
50         
51         TransformerFactory transformerFactory = TransformerFactory.newInstance();
52         Transformer transformer = transformerFactory.newTransformer();
53         
54         Source source = new DOMSource(document);
55         Result result = new StreamResult("book.xml");
56         transformer.transform(source, result);
57     }
58 }

book.xml

 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
 2     <>
 3         <书名>java深入浅出</书名>
 4         <作者>你猜 </作者>
 5         <价格>20.50</价格>
 6     </>
 7     <>
 8         <书名>c深入浅出</书名>
 9         <作者>haha </作者>
10         <价格>99.00</价格>
11     </>
12 </书架>
原文地址:https://www.cnblogs.com/pinnsvin/p/6836114.html