利用Dom4j读取Xml的增删查改(导包Dom4j和Xpath包)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.mickeymouse.dom4js;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.junit.Test;
import com.mickeymouse​.dom4jUtil.Dom4jUtils;
public class Dom4jDemo {
     @Test
     public void addElement() throws Exception {
         //读取一个节点的内容
         Document document = Dom4jUtils.getDocument();
         Element document2 = (Element) document.selectSingleNode( "//书[2]/作者" );
         System.out.println(document2.getText());
     }
     @Test
     // 2、遍历所有元素节点
     public void testBianLi() throws Exception {
         // 读取一个文件的地址
         Document document = Dom4jUtils.getDocument();
         Element element = document.getRootElement();
         treeWork(element);
     }
     // 递归查xml的元素节点
     private void treeWork(Element element) {
         // TODO Auto-generated method stub
         System.out.println(element);
         for ( int i = 0 , size = element.nodeCount(); i < size; i++) {
             Node node = element.node(i);
             if (node instanceof Element) {
                 treeWork((Element) node);
             } else {
                 // do something....
             }
         }
     }
     @Test
     // 3、修改某个元素节点的主体内容 第一本书的作者改为于磊
     public void testUpdate() throws Exception {
         // 读取一个文件的地址
         Document document = Dom4jUtils.getDocument();
         Element element = (Element) document.selectSingleNode( "//书[1]/作者" );
         element.setText( "于磊" );
         Dom4jUtils.writeDocument(document);
     }
     @Test
     // 4、向指定元素节点中增加子元素节点 在第二本书的子结点中添加一个日期
     public void testUpdate2() throws Exception {
         // 读取一个文件的地址
         Document document = Dom4jUtils.getDocument();
         Element element = (Element) document.selectSingleNode( "//书[2]" );
         element.addElement( "日期" ).setText( "1989" );
         Dom4jUtils.writeDocument(document);
     }
     @Test
     // 4、向指定元素节点中增加子元素节点 在第二本书的子结点中添加一个批发价
     public void testDelect() throws Exception {
         // 读取一个文件的地址
         Document document = Dom4jUtils.getDocument();
         Element element = (Element) document.selectSingleNode( "//书[2]/日期" );
         Element element1 = (Element) document.selectSingleNode( "//书[2]" );
         element1.remove(element); // 他杀
         Dom4jUtils.writeDocument(document);
     }
     @SuppressWarnings ( "unchecked" )
     @Test
     // 5.向指定元素节点上增加同级元素节点 在第一本书的售价前面,添加一个内部价
     public void testUpdate1() throws Exception {
         // 读取一个文件的地址
         Document document = Dom4jUtils.getDocument();
         Element element = (Element) document.selectSingleNode( "//书[1]" );
         Element element2 = DocumentHelper.createElement( "批发价" );
         element2.addText( "998" );
         element.elements().add( 1 , element2);
         Dom4jUtils.writeDocument(document);
     }
}


来自为知笔记(Wiz)


附件列表

     

    你可能感兴趣的:(利用Dom4j读取Xml的增删查改(导包Dom4j和Xpath包))