java学习 (2)xml操作dom(增、删、改、查)

  xml的操作实际是对内存中document实例的操作

  xml回写:

   在jdk中包javax.xml.transform中的Transformer类用于把代表xml文件的Document对象转换成xml格式进行输出。

  Transformer对象通过TransformerFactory获得,Transformer类通过transform方法完成转换操作,该方法接收一个源和一个目的地址

 1     @Test
 2     //xml回写
 3     public void demo2() throws Exception{
 4         DocumentBuilderFactory faBuilderFactory=DocumentBuilderFactory.newInstance();
 5         DocumentBuilder builder=faBuilderFactory.newDocumentBuilder();        
 6         Document document=builder.parse("books.xml");
 7         //在xml中增加元素和节点
 8         Element element=document.createElement("book");
 9         Element element2=document.createElement("name");
10         element2.setTextContent("java编程xml");
11         element.appendChild(element2);
12         element.setAttribute("id", "book3");
13         Element root=document.getDocumentElement();
14         root.appendChild(element);
15         //修改
16         NodeList nodeList1=document.getElementsByTagName("name");
17         for(int i=0;i<nodeList1.getLength();i++){
18             Node node=nodeList1.item(i);
19             if(node.getTextContent().equals("java编程高手")){
20                 Node nodePric=node.getNextSibling().getNextSibling();
21                 double price=Double.parseDouble(nodePric.getTextContent());
22                 price=price*1.20;
23                 nodePric.setTextContent(price+"");
24             }
25         }            
26         //删除
27         NodeList nodeList=document.getElementsByTagName("name");
28         for(int i=0;i<nodeList.getLength();i++)
29         {
30             Element name=(Element) nodeList.item(i);
31             if(name.getTextContent().contains("java")){
32                 Element book=(Element) name.getParentNode();
33                 //用父节点删除自己
34                 book.getParentNode().removeChild(book);
35                 i--;
36             }
37         }
38         TransformerFactory transformerFactory=TransformerFactory.newInstance();
39         Transformer transform=transformerFactory.newTransformer();
40         DOMSource source=new DOMSource(document);
41         StreamResult sFilter=new StreamResult("book_balk.xml");
42         transform.transform(source, sFilter);                
43     }
44     
View Code

 

 
posted @ 2015-01-06 20:04  湘_蜗牛  阅读(207)  评论(0编辑  收藏  举报