当前位置: 移动技术网 > IT编程>开发语言>Java > XML的解析

XML的解析

2019年01月14日  | 移动技术网IT编程  | 我要评论
1 XML解析,xml解析其实就是获取元素里面的字符数据或者属性数据 1.1 DOM解析,document object model把整个xml全部读到内存中,形成树桩结构。整个文档称之为document对象。属性对应Attribute对象,所有的元素节点对应Element对象,文本也可以称之为Te ...

1 xml解析,xml解析其实就是获取元素里面的字符数据或者属性数据

  1.1 dom解析,document object model把整个xml全部读到内存中,形成树桩结构。整个文档称之为document对象。属性对应attribute对象,所有的元素节点对应element对象,文本也可以称之为text对象那个,以上所有对象都称之为node节点,如果xml特别大,那么将会造成内存溢出,可以对文档进行增删操作

  1.2 sax解析:simple api for xml基于事件驱动,读取一行,解析一行,不会造成内存溢出,不可用进行增删,只能查询

  1.3 dom4j 解析xml

    <dependency>
        <groupid>dom4j</groupid>
        <artifactid>dom4j</artifactid>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupid>jaxen</groupid>
        <artifactid>jaxen</artifactid>
        <version>1.1.1</version>
    </dependency>

 

    

    @test
    public void test1() throws documentexception {
        //创建sax读取对象
        saxreader saxreader = new saxreader();
        //指定解析的xml文件
        document document = saxreader.read(new file("c:\\work\\ideaworkspace\\web\\web\\web_09\\src\\main\\resources\\stus.xml"));
        system.out.println(document);
        //得到根元素
        element rootelement = document.getrootelement();
        //获取根元素下面的所有子元素
        list<element> elements = rootelement.elements();
        //遍历所有的stu元素
        for (element element : elements) {
            system.out.println(element.element("name").gettext());
            system.out.println(element.element("age").gettext());
            system.out.println(element.element("address").gettext());
        }


    }

    @test
    public void test2() throws documentexception {
        //创建sax读取对象
        saxreader saxreader = new saxreader();
        //指定解析的xml文件
        document document = saxreader.read(new file("c:\\work\\ideaworkspace\\web\\web\\web_09\\src\\main\\resources\\stus.xml"));
        system.out.println(document);
        //得到根元素
        element rootelement = document.getrootelement();

        element element = (element) rootelement.selectsinglenode("//name");
        system.out.println(element.gettext());

        list<element> list = rootelement.selectnodes("//name");

        for (element element1 : list) {
            system.out.println(element1.gettext());
        }

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网