使用dom4j需要导入jar包
jar包下载地址:http://pan.baidu.com/s/1o65jWRw
将dom4j-1.6.1.jar包导入Eclipse
book2.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<书>
<书名>JAVA</书名>
<作者>XXXXXX</作者>
<售价>23333</售价>
</书>
<书>
<书名>ANDROID</书名>
<作者>XXXXXX</作者>
<售价>23333</售价>
</书>
</书架>
解析book2.xml这个文件。
方法:
获取文档的根结点:
Element root = document.getRootElement();
获取某个结点的子节点
Element element = root.element();
获取某个结点下的所有子节点:
List elements = root.elements();
遍历该结点下的所有子节点
以递归的方式进行
public class dom4j {
public static void main(String[] args) throws Exception {
// method_1();
method_2();
}
private static void method_2() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read("book2.xml");
Element root = document.getRootElement();
parse(root);
}
private static void parse(Element ele) {
// 处理当前元素包含的所有属性
parseAttribute(ele);
// 获取当前元素包含的所有
List el = ele.elements();
for (Object e : el) {
Element element = (Element) e;
// 如果该元素的内容不是只包含字符串
if (!element.isTextOnly()) {
parse(element);
} else {
// 处理当前 元素的全部属性
parseAttribute(element);
// 获取当前元素的内容
System.out.println(element.getQName().getName() + "-->"
+ element.getText());
}
}
}
/**
* 处理元素属性
*
* @param ele
*/
private static void parseAttribute(Element ele) {
List attributes = ele.attributes();
for (Object e : attributes) {
Attribute attribute = (Attribute) e;
System.out.println(ele.getQName().getName() + "元素的"
+ attribute.getQName().getName() + "属性为"
+ attribute.getValue());
}
}
private static void method_1() throws Exception {
// 获取解析器
SAXReader reader = new SAXReader();
// 解析xml获取代表整个文档的dom对象
Document document = reader.read("book2.xml");
// 获取根结点
Element rootElement = document.getRootElement();
// 获取书名
String bookName = rootElement.element("书").element("书名").getText();
System.out.println("bookName--: " + bookName);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u013476556/article/details/46700731