jaxp解析xml
2014-09-24 21:14
47 查看
有一个xml
读取指定节点的内容
遍历所有标签
得到标签属性
在指定位子添加节点,不指定加在最后一个位子
删除节点
第二种删除方法
更新节点
<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架> <书> <书名 name="xxxx">java web</书名> <作者>张大</作者> <价格>99</价格> </书> <书> <书名>spring</书名> <作者>呜呜</作者> <价格>55</价格> </书> </书架>
读取指定节点的内容
public void read1() throws Exception{ //创建工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //得到Dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //得到代表文档的document Document document = builder.parse("src/book.xml"); NodeList list = document.getElementsByTagName("书名"); Node node = list.item(1); String content = node.getTextContent(); System.out.println(content); }
遍历所有标签
public void read2() throws Exception{ //创建工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //得到Dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //得到代表文档的document Document document = builder.parse("src/book.xml"); Node root = document.getElementsByTagName("书架").item(0); traverse(root); } private void traverse(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); traverse(child); } }
得到标签属性
public void read3() throws Exception{ //创建工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //得到Dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //得到代表文档的document Document document = builder.parse("src/book.xml"); Element bookname = (Element) document.getElementsByTagName("书名").item(0); String value = bookname.getAttribute("name"); System.out.println(value); }
在指定位子添加节点,不指定加在最后一个位子
public void add() throws Exception{ //创建工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //得到Dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //得到代表文档的document Document document = builder.parse("src/book.xml"); //价格上添加评价 Element evaluate = document.createElement("评价"); evaluate.setTextContent("well"); //得到参考节点 Element reNode = (Element) document.getElementsByTagName("价格").item(0); //得到父节点 Element book = (Element) document.getElementsByTagName("书").item(0); //父节点中插入 book.insertBefore(evaluate, reNode); //更新后的内存写入xml文档 TransformerFactory tf_factory = TransformerFactory.newInstance(); Transformer t = tf_factory.newTransformer(); t.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/book.xml"))); }
删除节点
<span style="white-space:pre"> </span>public void delete() throws Exception{ //创建工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //得到Dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //得到代表文档的document Document document = builder.parse("src/book.xml"); //得到要删除的节点 Element price = (Element) document.getElementsByTagName("价格").item(0); //得到父节点 Element book = (Element) document.getElementsByTagName("书").item(0); //删 book.removeChild(price); //更新后的内存写入xml文档 TransformerFactory tf_factory = TransformerFactory.newInstance(); Transformer t = tf_factory.newTransformer(); t.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/book.xml"))); }
第二种删除方法
public void delete2() throws Exception{ //创建工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //得到Dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //得到代表文档的document Document document = builder.parse("src/book.xml"); //得到要删除的节点 Element e = (Element) document.getElementsByTagName("价格").item(0); e.getParentNode().removeChild(e); //更新后的内存写入xml文档 TransformerFactory tf_factory = TransformerFactory.newInstance(); Transformer t = tf_factory.newTransformer(); t.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/book.xml"))); }
更新节点
@Test public void update() throws Exception{ //创建工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //得到Dom解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //得到代表文档的document Document document = builder.parse("src/book.xml"); //得到要更新的节点 Element e = (Element) document.getElementsByTagName("价格").item(0); e.setTextContent("102"); //更新后的内存写入xml文档 TransformerFactory tf_factory = TransformerFactory.newInstance(); Transformer t = tf_factory.newTransformer(); t.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/book.xml"))); }
相关文章推荐
- 使用JAXP解析XML
- 20110529-Day01 Xml的解析,jaxp
- xml的dom解析(jaxp实现)
- 使用JAXP对xml文档进行Dom解析
- java中使用JAXP解析xml
- java中用jaxp解析xml
- XML的dom和Sax解析,以及JAXP的DOM的crud
- xml的jaxp解析实例
- Sun公司的jaxp解析中的DOM解析与生成XML
- 进入黑马day2-解析xml三种方法(1)jaxp解析
- xml--解析02--jaxp对xml进行dom解析
- JAXP对XML的DOM解析(增删改查)
- 用DOM方式解析XML(用JAXP工具)--小案例---第一天
- xml的jaxp解析实例
- 用“XML解析开发包Jaxp”对XML文件进行Dom方式的CRUD操作
- xml解析,JAXP (Java API for XML Processing)
- 用DOM方式解析XML(用JAXP工具)--小案例---第一天
- 利用JAXP方式对XML解析
- java中使用JAXP解析xml(二)向XML文档中添加标签
- Java JAXP 解析XML