使用dom4j框架解析XML文件

dom4j框架下载链接https://dom4j.github.io/

idea里创建一个文件

创建好了以后把(dom4j-2.1.4.jar)导入到(lib)文件夹里去

把(dom4j-2.1.4.jar)融合到项目

package Dom4jTest;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Dom4test {
    //目标:掌握使用dom4j框架解析XML文件
    public static void main(String[] args) throws Exception{
        //1:创建dom4j框架提供的解析器对象
        SAXReader saxReader=new SAXReader();
        //2:使用saxReader对象ba
        Document document = saxReader.read("src/Hello_Test2.xml");
        //3:从文档对象中解析XML文件的全部数据了
       Element root=  document.getRootElement();
        System.out.println(root.getName());
        //4:获取根元素下的全部一级子元素
        //集合接收
        //List<Element> elements = root.elements();
        List<Element> elements = root.elements("user");

        //增强for循环遍历
        for (Element element : elements) {
            System.out.println(element.getName());

        }
        //5:获取当前元素下的摸个元素
        Element people = root.element("people");
        System.out.println(people.getData());

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

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

        List<Attribute> attributes=user.attributes();
        for (Attribute attribute : attributes) {
            //   属性名 属性价值 (attribute.getName() + "=" + attribute.getValue)
            System.out.println(attribute.getName() + "=" + attribute.getValue());

        }
        //7:如何获取全部文本内容
        System.out.println("===============");
        System.out.println(user.elementText("name"));


        System.out.println(user.elementText("id"));
        System.out.println(user.elementText("name"));
        System.out.println(user.elementText("sex"));
        System.out.println(user.elementText("password"));
        System.out.println(user.elementText("data"));
        System.out.println(user.elementText("data1"));

    }
}

 

<?xml version="1.0" encoding="UTF-8" ?>
<!--注释以上抬头声明必须放第一行,必须有-->
<!--跟标签只能有一个-->


<users>
    <user id="1 " desc="用户一">
        <id>1</id>
        <name>张无忌</name>
        <sex>男</sex>
        <password>12345678</password>
        <data>数据</data>
        <data>3 &lt; 2 &amp;&amp; 5>4  </data>
        <data1><![CDATA[ 3>2  &&  5<45]]></data1>
    </user>
    <people>人</people>
    <user id="2 ">
        <name>敏敏</name>
        <sex>女</sex>
        <password>12345678</password>
        <data>数据</data>
    </user>
</users>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值