JAVA解析xml库DOM4J

解析xml有两种方式

1.通过DOM和SAX解析xml

        这两种方法是jdk官方提供的由于过于老旧,只需要知道有这么个方法即可。

2.还可以通过第三方提供的技术来解析

        jdom在dom基础上进行了封装

        dom4j又对jdom进行了封装

        pull主要用在android手机开发,和SAX非常类似都是事件机制解析XML文件

3.大概步骤

        首先需要在编译器里面创建一个新的folder,然后导入需要的dom4j的jar包,然后build path

接下来就可以编写相关代码了

        首先我们需要一个sorce folder然后在里面编写xml文件

                以下是文件结构图(主要看student.xml)

以下是XML代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE STUDENTS[
<!ENTITY test "this is a test">
]>

<STUDENTS>
    <student id = "1001">
        <name>牵着蜗牛去兜风</name>
        <age>23</age>
    </student>
    <student id = "1002">
        <name>石原里美/name>
        <age>28</age>
    </student>
    <student id = "1003">
        <name>斋藤飞鸟</name>
        <age>26</age>
    </student>
</STUDENTS>

以下是JAVA代码

public class DOM4JTest{
    public static void main(String [] args){
        //1.首先我们需要创建一个读取xml文件的对象
        SAXReader reader = new SAXReader();

        //2.读取xml并获取Document对象
        try{
            Document document = 
            //可以直接通过读file的形式读取xml文件
            //reader.read("config/student.xml")
            //也可以通过流的方式读取xml文件,这次我们通过流的方式
   reader.read(DOM4JTest.class.getClassLoader().getResourceAsStream("student.xml"));

            //3.获取根节点
            Element root = document.getRootElement();

            //4.获取子节点
            //student字符串的作用是dom4j会自动识别是否为Student节点,这样就不会解析空白节点
            List<Element> studentLIst = root.elements("student");

            //5.遍历list
            for(Element student :studentList){
                //6.输出student结点中的id属性
                System.out.println("id : " + student.attributeValue("id"));

                //7.输出student结点中的name结点和age结点
                Element name = student.element("name");
                System.out.println("name : " + student.getText());

                Element age = student.element("age");
                System.out.println("age : " + student.getText());
            }

        //既然我们已经可以获取xml里面的属性了,可以通过id name gae 这三个属性创建一个对象
        //然后将这些对象存到一个list里面  再存入数据库即可
        //当然这些事情tomcat都已经帮我们解决了

        }catch(DocunmentException e){
            e.printStackTrace();
        }

        

    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值