Dom4j取标签中的内容用 getText ,取开始标签和结束标签之间的值。
取属性值有两种方式:
Jar包:
XML原型:
<?xml version="1.0" encoding="utf-8"?>
<书架>
<书>
<书名>Java高级</书名>
<作者>武陟县</作者>
<价格>200元</价格>
</书>
<书>
<书名 name="xxxxxxxxxxx">Java中级</书名>
<作者>打火机</作者>
<价格>2000元</价格>
</书>
</书架>
Java类
1 package Dom4j_XMLParser;
2
3 import java.io.File;
4
5 import org.dom4j.Attribute;
6 import org.dom4j.Document;
7 import org.dom4j.DocumentException;
8 import org.dom4j.Element;
9 import org.dom4j.io.SAXReader;
10 import org.junit.Test;
11
12 public class Demo1 {
13
14 // 获取第二本书的书名
15 @Test
16 public void test1() throws Exception {
17 // 创建SAX读取器
18 SAXReader reader = new SAXReader();
19 // 加载文档
20 Document document = reader.read(new File("src/book.xml"));
21 // 获取根节点(书架)
22 Element root = document.getRootElement();
23 // 获取根节点下的书节点,带s返回一个数组,再取数组的第二个
24 Element book = (Element) root.elements("书").get(1);
25 // 获取树下面的书名属性
26 Element shuming = book.element("书名");
27 // 获取书名开始标签与结束标签之间的值
28 String value = shuming.getText();
29 System.out.println(value);
30
31 }
32
33
34 // 获取第二本书的书名中的属性 <书名 name="xxxxxxxxxxx">Java中级</书名>
35 @Test
36 public void test2() throws Exception {
37 SAXReader reader = new SAXReader();
38 Document document = reader.read(new File("src/book.xml"));
39 Element root = document.getRootElement();
40
41 Element book = (Element) root.elements("书").get(1);
42 Element shuming = book.element("书名");
43
44 // 第一中方法
45 // 获取name属性
46 Attribute attribute = shuming.attribute("name");
47 // 获取name属性的值
48 String attrValue = attribute.getValue();
49 // 获取书名开始标签与结束标签之间的值
50 System.out.println(attrValue); //xxxxxxxxx
51
52 // 第二种方法(获取书名节点的name属性的值)
53 System.out.println(shuming.attributeValue("name")); //xxxxxxxx
54
55 }
56 }