Dom4j读取xml文件

Dom4j读取xml文件

需要的jar包下载地址

官方下载地址(不要积分)
http://central.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar

准备需要下载test.xm

<?xml version="1.0" encoding="UTF-8"?>  
<root>  
    <user editor="ccd" date="2018-1-10 11:52:20">  
        <name>zhangsan</name>  
        <year>24</year>  
        <sex>man</sex>  
    </user>  
    <user editor="ccd" date="2018-1-10 11:52:13">  
        <name>lisi</name>  
        <year>24</year>  
        <sex>woman</sex>  
    </user>  
</root>  

工具类代码

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

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

public class Dom4jXml {
    public static void main(String[] args) throws DocumentException {
        /**
         * 获取文件的document对象,然后获取对应的根节点
         * 
         * @author ccd
         */
        SAXReader sax = new SAXReader();// 创建一个SAXReader对象
        File xmlFile = new File("C:\\Users\\plj\\Desktop\\test.xml");// 根据指定的路径创建file对象
        Document document = sax.read(xmlFile);// 获取document对象,如果文档无节点,则会抛出Exception提前结束
        Element root = document.getRootElement();// 获取根节点
        Dom4jXml.getNodes(root);// 从根节点开始遍历所有节点

    }

    /**
     * 从指定节点开始,递归遍历所有子节点
     * 
     * @author ccd
     */
    public static void getNodes(Element node) {
        System.out.println("--------------------");

        // 当前节点的名称、文本内容和属性
        System.out.println("当前节点名称:" + node.getName());// 当前节点名称
        System.out.println("当前节点的内容:" + node.getTextTrim());// 当前节点名称
        List<Attribute> listAttr = node.attributes();// 当前节点的所有属性的list
        for (Attribute attr : listAttr) {// 遍历当前节点的所有属性
            String name = attr.getName();// 属性名称
            String value = attr.getValue();// 属性的值
            System.out.println("属性名称:" + name + "属性值:" + value);
        }

        // 递归遍历当前节点所有的子节点
        List<Element> listElement = node.elements();// 所有一级子节点的list
        for (Element e : listElement) {// 遍历所有一级子节点
            Dom4jXml.getNodes(e);// 递归
        }
    }
}

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值