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 </书架>