读取xml文件,快速入门

来源:互联网 发布:男士香水品牌 知乎 编辑:程序博客网 时间:2024/06/04 19:06

用Dom4j读取xml文件,在xml文件夹下有test2.xml文件:

<?xml version="1.0" encoding="gb2312"?><students name="zizhu" age="21">    <student age="25">        <name>崔卫兵</name>        <college>PC学院</college>    </student>    <student>        <name>cwb</name>        <college leader="学院领导">PC学院</college>    </student>    <student age="45">        <name>xxxxx</name>        <college leader="">xxx学院</college>        <element name="测试">        <next>下一个</next>        <subElement>hello,done!!!</subElement>        </element>    </student></students>

源码:

package com.test;import java.util.Iterator;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class JdomTest2 {public static void main(String[] args) {SAXReader reader=new SAXReader();try {//总结一:此处得到文档的位置:任何一个读文件的方式必定会提供一个拥有InputStream输入流的操作方式,可以说这种方式是万能的//ClassLoader默认的是当前项目的classpath路径,即bin目录Document document=reader.read(JdomTest2.class.getClassLoader().getResourceAsStream("xml/test2.xml"));Element root=document.getRootElement();//得到根节点tree(root);//遍历} catch (DocumentException e) {e.printStackTrace();}}//遍历public static void tree(Element element){/** * 形如这种方式:<element> * <name>zizhu</name> * <age>21</age> * <address>上海</address> *    </element>,其中所有的都能用elementIterator这种方式遍历出来,取的时候用getName和getText来取 */System.out.println("节点的名字:"+element.getName()+"\t节点的值:"+element.getText());//遍历节点的所有属性//总结二:得到元素所有的属性,attributeIterator//形如这种方式<element name="hello" age=21 address="上海">...</>,其中所有的属性都能用这种方式遍历出来Iterator rootAttriIter=element.attributeIterator();while(rootAttriIter.hasNext()){Attribute rootAttribute=(Attribute)rootAttriIter.next();//形如这种方式<element name="hello" age=21 address="上海">...</>,通过getName取到属性的名字,通过getValue取到值System.out.print("节点的属性的名字和值:"+rootAttribute.getName()+"="+rootAttribute.getValue()+"\t");}System.out.println();//遍历节点的所有子节点Iterator subElementIter=element.elementIterator();while(subElementIter.hasNext()){Element subElement=(Element)subElementIter.next();tree(subElement);}}}

输出结果:

节点的名字:students 节点的值:
节点的属性的名字和值:name=zizhu 节点的属性的名字和值:age=21


节点的名字:student 节点的值:
节点的属性的名字和值:age=25
节点的名字:name 节点的值:崔卫兵
节点的名字:college 节点的值:PC学院


节点的名字:student 节点的值:
节点的名字:name 节点的值:cwb
节点的名字:college 节点的值:PC学院
节点的属性的名字和值:leader=学院领导


节点的名字:student 节点的值:
节点的属性的名字和值:age=45
节点的名字:name 节点的值:xxxxx
节点的名字:college 节点的值:xxx学院

节点的属性的名字和值:leader=
节点的名字:element 节点的值:   
节点的属性的名字和值:name=测试
节点的名字:next 节点的值:下一个
节点的名字:subElement 节点的值:hello,done!!!


原创粉丝点击