使用Java解析xml
2017-03-03 本文已影响0人
静候那一米阳光
使用dom4j-1.6.1.jar。
百度网盘下载
【Parser.class】
import org.dom4j.*;
import java.io.File;
import java.util.List;
public class Parser {
private Element root=null;
Parser(String file) throws DocumentException {
SAXReader sax = new SAXReader();//创建一个SAXReader对象
File xmlFile = new File(file);//根据指定的路径创建file对象
Document document = sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束
root = document.getRootElement();//获取根节点
}
public Element getRoot(){
return root;
}
public void getNodes(Element node){
System.out.println("--------------------");
//当前节点的名称、文本内容和属性
System.out.println("当前节点名称:"+node.getName());//当前节点名称
System.out.println("当前节点内容:"+node.getTextTrim());//当前节点内容
List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list
for(Attribute attr:listAttr){//遍历当前节点的所有属性
String name=attr.getName();//属性名称
String value=attr.getValue();//属性的值
System.out.println("属性名称:"+name+" 属性值:"+value);
}
//递归遍历当前节点所有的子节点
List<Element> listElement=node.elements();//所有一级子节点的list
for(Element e:listElement){//遍历所有一级子节点
this.getNodes(e);//递归
}
}
}
【main.class】
public class main {
public static void main(String[] args) throws Exception {
Parser p=new Parser("/Users/zdy/Workspace/test.xml");
p.getNodes(p.getRoot());
}
}