使用dom4j解析xml文件

package com.baidu;

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

import java.io.File;
import java.net.URISyntaxException;
import java.util.List;

//使用dom4j解析xml文件
public class Test02 {
    public static void main(String[] args) {
        //使用dom4j第一步:将dom4j的jar包添加到classpath中(使用maven的话,只需在pom.xml文件中配置即可)
        //1.创建SAXReader对象
        SAXReader saxReader = new SAXReader();

        try {
            //2.提供需要读取的文件路径
            String path = Thread.currentThread().getContextClassLoader().getResource("XML/db.xml").toURI().getPath();

            //3.读取xml文件(通过saxReader的read方法),形成DOM树
            Document dom = saxReader.read(new File(path));

            //4.获取dom树的根节点
            Element rootElement = dom.getRootElement();

            //5.获取根节点的名字,输出查看效果
            String rootElementName = rootElement.getName();
            System.out.println("rootElementName = " + rootElementName);

            //6.获取根节点的属性
            List<Element> attributes = rootElement.attributes();
            System.out.println("属性的个数有" + attributes.size());

            //7.获取根节点的属性值
            for (int i = 0; i < attributes.size(); i++) {
                Attribute attribute = (Attribute) attributes.get(i);
                System.out.println(attribute.getName() +"="+ attribute.getValue());
            }

            //8.其他获取属性的方法
            /*String name = rootElement.attributeValue("name");
            System.out.println("name = " + name);
            String id = rootElement.attributeValue("id");
            System.out.println("id = " + id);*/

            //9.获取根节点的子节点的名字和值
            List<Element> elements = rootElement.elements();
            for (int i = 0; i < elements.size(); i++) {
                List<Element> list = elements.get(i).elements();
                for (int j = 0; j < list.size(); j++) {
                    Element element = list.get(j);
                    String name = element.getName();
                    Object data = element.getData();
                    System.out.println(name +"="+ data);
                }
            }

            //10.其他方法获取根节点的子节点的名字和值
            String driver = (String) rootElement.element("property").element("driver").getData();
            String url = (String) rootElement.element("property").element("url").getData();
            String user = (String) rootElement.element("property").element("user").getData();
            String pass = (String) rootElement.element("property").element("pass").getData();

            //11.输出查看效果
            System.out.println("driver = " + driver);
            System.out.println("url = " + url);
            System.out.println("user = " + user);
            System.out.println("pass = " + pass);

        } catch (URISyntaxException e) {
            System.out.println("toURI()方法异常!");
        } catch (DocumentException e) {
            System.out.println("IO异常!");
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<properties id="jdbc" name="jdbc">
    <property name="mysql">
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC</url>
        <user>root</user>
        <pass>root</pass>
    </property>

    <property name="druid">
        <initialSize>10</initialSize>
        <minIdle>10</minIdle>
        <maxActive>20</maxActive>
        <maxWait>6000</maxWait>
    </property>
</properties>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值