利用dom4j解析xml

来源:互联网 发布:有赞 源码 编辑:程序博客网 时间:2024/05/17 00:05
package com.huishao.xml;


import java.io.File;
import java.util.Iterator;
import java.util.List;


import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class combinationXml03 {
static String fileName="C:\\Program Files\\eclipse\\eclipse1\\fastJson\\src\\test\\resources\\student.xml";
public static void main(String[] args) throws DocumentException {
SAXReader saxReader = new SAXReader();
Document read = saxReader.read(new File(fileName));
//获取根节点
Element rootElement = read.getRootElement();
//打印根节点的名称
System.out.println("父节点名称:" + rootElement.getName());
getNodes(rootElement);
}

static public void getNodes(Element rootElement){
//获取节点的属性
List<Attribute> attributes = rootElement.attributes();
for (Attribute attribute : attributes) {
System.out.println("根节点的属性:" + attribute.getName() + "--" + attribute.getText());
}
//获取节点名称
if(!rootElement.getTextTrim().equals("")){
System.out.println(rootElement.getName() + "--" + rootElement.getText());
}
Iterator<Element> elementIterator = rootElement.elementIterator();
while(elementIterator.hasNext()){
//获得当前节点
Element next = elementIterator.next();
getNodes(next);
}
}

}



student.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<students>
<student1 id="001">
<微信公众号>@残缺的孤独</微信公众号>
<学号>20140101</学号>
<地址>北京海淀区</地址>
<座右铭>要么强大,要么听话</座右铭>
</student1>
<student2 id="002">
<新浪微博>@残缺的孤独</新浪微博>
<学号>20140102</学号>
<地址>北京朝阳区</地址>
<座右铭>在哭泣中学会坚强</座右铭>
</student2>
</students>


执行结果:

父节点名称:students
根节点的属性:id--001
微信公众号--@残缺的孤独
学号--20140101
地址--北京海淀区
座右铭--要么强大,要么听话
根节点的属性:id--002
新浪微博--@残缺的孤独
学号--20140102
地址--北京朝阳区
座右铭--在哭泣中学会坚强