Dom4J
Dom4J是一个易用,开源的库,多用于解析XML,Xpath,Xslt,它用于Java平台,采用了Java集合框架,并完全支持DOM,SAX和Jaxp
Dom4J的下载地址 http://sourceforge.net/projects/dom4j/files/dom4j-2.0.0-ALPHA-2/
1 读取/解析Xml文档(依赖于org.dom4j.io)
方法说明
read方法为重载形式的方法
2 获取root根节点
任何一个规范的XML文件都必须有一个"根" 做为基础节点,如下例
3 迭代XML树对象
有三种方法
Dom4J是一个易用,开源的库,多用于解析XML,Xpath,Xslt,它用于Java平台,采用了Java集合框架,并完全支持DOM,SAX和Jaxp
Dom4J的下载地址 http://sourceforge.net/projects/dom4j/files/dom4j-2.0.0-ALPHA-2/
1 读取/解析Xml文档(依赖于org.dom4j.io)
//该方法返回的是整个XML文档对象
public Document read(String fileName) throws SomeException{
SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(new file(fileName));
return doc;
}
方法说明
read方法为重载形式的方法
read(InputStream is); //使用输入流作为参数
read(File file); //使用文件对象作为参数
read(Url url); //使用同一转定位符作为参数
2 获取root根节点
任何一个规范的XML文件都必须有一个"根" 做为基础节点,如下例
<?xml version="1.0" encoding="utf-8"?>
<!--该文档中每一个Employee节点都可表示为一个Employee对象,每个对象都有四个属性---->
<Employees>
<Employee>
<id>32001</id>
<employeeName>Hostman</employeeName>
<employeeAge>22</employeeAge>
<employeeEmail>Hostman@msn.com</employeeEmail>
</Employee>
<Employee>
<id>32002</id>
<employeeName>green</employeeName>
<employeeAge>23</employeeAge>
<employeeEmail>green123@msn.com</employeeEmail>
</Employee>
</Employees>
//该方法返回的是Employees节点对象
public Element getRootElement(Document document)throws SomeException{
return document.getRootElement();
}
3 迭代XML树对象
有三种方法
//rootElement 为根节点对象
for (Iterator i = rootElement.elementIterator(); i.hasNext();) {
Element element = (Element) i.next();
for(int c=0;c<element.elements().size();c++){
Element node = (Element) element.elements().get(c);
System.out.println(node.getText());
}
for(Iterator i = rootElement.elementIterator();i.hasNext();){
Element e = (Element) i.next();
for(int c=0;c<e.elements().size();c++){
Element node = (Element) e.elements().get(c);
System.out.println(node.getText());
}
for(Iterator i = rootElement.elementIterator("data");i.hasNext();){
Element e = (Element) i.next();
for(int c=0;c<e.elements().size();c++){
Element node = (Element) e.elements().get(c);
System.out.println(node.getText());
}
//获取XML文档对象中的属性
List list = rootElement.elements();
for(int i=0;i<list.size();i++){
Element e = (Element) list.get(i);
List attrList = e.attributes();
for(int c=0;c<attrList.size();c++){
Attribute attr = (Attribute) attrList.get(c);
System.out.println(attr.getName() + " " + attr.getText());
}
}