java中用org.dom4j.Document对xml解析,并获取对应结点和对应结点的数据

最近在学习java处理xml,本文主要是记录如何用用org.dom4j.Document对xml解析,并获取对应结点和对应结点的数据

//1、创建一个Dom4j框架提供的解析器对象
        SAXReader saxReader = new SAXReader();

        //2、使用saxReader对象把需要解析的XML文件读成一个Document对象
        Document doucument = saxReader.read("E:\\myExercitation\\src\\xmlTestDemo.xml");

        //3、从文档对象中解析XML文件的全部数据
        Element root = doucument.getRootElement();
        System.out.println(root.getName());

        //4、获取根元素下的全部一级子元素
        List<Element> elementList = root.elements("user");//获取指定的名称为user的全部一级子元素
        //List<Element> elementList = root.elements();//获取根元素下的全部一级子元素
        for (Element element : elementList) {
            System.out.println(element.getName());
        }

        //5、获取当前元素下的某个子元素
        Element people = root.element("curtData");
        System.out.println(people.getText());

        //如果下面有很多子元素user,默认获取第一个
        Element user = root.element("user");
        System.out.println(user.elementText("name"));

        //6、获取元素的属性信息
        System.out.println(user.attributeValue("userId"));
        Attribute id = user.attribute("userId");
        System.out.println(id.getName());
        System.out.println(id.getValue());

        List<Attribute> attributes = user.attributes();
        for (Attribute attribute : attributes) {
            System.out.println(attribute.getName() + "=" + attribute.getValue());
        }

        //7、如何获取全部的文本内容
        System.out.println(user.elementText("name"));
        System.out.println(user.elementText("sex"));
        System.out.println(user.elementText("省份"));
        System.out.println(user.elementTextTrim("data"));
        System.out.println(user.elementText("dataParam"));
        System.out.println(user.elementTextTrim("dataParam"));//取出文本去掉空格

        Element data = user.element("dataParam");
        System.out.println(data.getText());
        System.out.println(data.getTextTrim());//取出文本去除前后空格

可粘贴以上代码到main方法中进行测试,其中saxReader.read("E:\\myExercitation\\src\\xmlTestDemo.xml");中的路劲名要换成你自己本地有xml文件的路径,

在这里我在我本地创建了一个xml文件,其中内容为

<?xml version="1.0" encoding="GBK" ?>
<!--以上抬头声明必须放在第一行,必须有-->
<!--根标签只能有一个-->

<req>
    <user userId="1"  info="重要">
        <name>新亭</name>
        <gender>男</gender>
        <省份>广州</省份>
        <data>3 &lt; 2 &amp;&amp; 5 &gt; 4</data>
        <dataParam>
            <![CDATA[
                3 < 2 && 5 > 4
            ]]>
        </dataParam>
    </user>
    <curtData>curtData数据</curtData>
    <curtData2>curtData2数据</curtData2>
    <user userId="2"  info="不重要">
        <name>新亭2</name>
        <gender>男</gender>
        <省份>东莞</省份>
        <data>3 &lt; 2 &amp;&amp; 5 > 4</data>
        <dataParam>
            <![CDATA[
                3 < 2 && 5 > 4
            ]]>
        </dataParam>
    </user>
</req>

复制创建好的xml文件路径替换axReader.read("E:\\myExercitation\\src\\xmlTestDemo.xml");中的路径名称便可

代码运行的结果如下:

至此,本文结束,本文只为记录学习!!!

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值