Java解析XML文档

来源:互联网 发布:高晓松二叔是谁 知乎 编辑:程序博客网 时间:2024/06/05 19:14

1.使用基于树的思想的Dom, JDom,Dom4J

下载JDom4J,然后在myeclipse的window->perference->java->buildpath->user libraries->添加用户库

1.1解析xml文件

public static void parseXML()//解析XML文件{SAXReader parser=new SAXReader(); //获取解析对象try{Document doc=parser.read(new File(文件路径));//获取和输出根元素Element root = dec.getRootElement();//获取根元素对象String rootName=root.getName();//获取根元素对象名称List<Element> list=root.elements();//获取根元素下的儿子对象for (Element e:list)//遍历根下的儿子对象{String eName=e.getName();//获取儿子对象的名称List<Attribute> atts=e.attributes();//获取当前儿子对象的属性对象for(Attribute att:atts)//遍历儿子对象的属性{String attName=att.getName();//获取属性名称String attValue=att.getValue();//获取属性值}Iterator<Element> iter=e.elementIterator();//获取孙子对象while(iter.hasNext)//遍历孙子对象{Element child=iter.next();String childName=child.getName();//获取孙子对象名称String childText=child.getText();//获取孙子元素内容}}}catch(Exception e){e.printStackTrace();}}

如果提前已知XML文件内容,可以用先验信息获取

SAXReader parser=new SAXReader(); //获取解析对象Document doc=parser.read(new File(文件路径));//获取和输出根元素Element root = dec.getRootElement();//获取根元素对象
Element e1=root.element(儿子对象的名称);
Attribute att= e1.attribute(属性名称);
Element e21=el.element(孙子对象名称)
也可以使用Dom4J创建XML文件

Dom4J是先将XML文件的DOM树形结构读取到内存里,然后解析。

2.Sax类库

该类库使用事件驱动

startDoucument事件:在开始解析XML文档时发生

startElement事件:在开始解析XML文档的开始元素标记时发生

characters事件:在开始解析XML文档的开始元素和结束元素标记间的内容时发生

endElement事件:在开始解析XML文档的结束元素标记时发生

endDoucument事件:在结束解析XML文档时发生







0 0
原创粉丝点击