Java dom4j的使用

 本文介绍使用dom4j来处理XML。

一:使用maven引入依赖jar包

<dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>1.6.1</version>
</dependency>

二:解析XML

思路:解析XML过程是通过获取Document对象,然后继续获取各个节点以及属性等操作。获取Document对象方式:

1.自己创建Document

        Document document = DocumentHelper.createDocument();
        Element root = document.addElement("root");

其中root是根节点,可以继续添加其他节点等操作。

2.读取xml类型文本内容获取Document对象

String content = "<root>xxxxxxxxx</root>";

Document document = DocumentHelper.parseText(content);

3.读取XML文件获取Document对象

        //创建SAXReader对象
        SAXReader saxReader = new SAXReader();
        //获取Document对象
        Document read = saxReader.read(new File("xml文件路径"));

三:遍历节点的内容和属性,并放置到Map里面(注意:不支持有重复便签的xml,因为map唯一性的key值)

//遍历当前节点下的所有节点  
    public void getNodes(HashMap<String, String> map,Element node){
        System.out.println("当前节点的名称:" + node.getName());
        map.put(node.getName(), node.getTextTrim());
        //首先获取当前节点的所有属性节点  
        List<Attribute> attributes = node.attributes();  
        //遍历属性节点  
        for(Attribute attribute : attributes){
            System.out.println("属性"+attribute.getName() +":" + attribute.getValue());  
            map.put(attribute.getName(), attribute.getValue());
        }  
        //如果当前节点内容不为空,则输出  
        if(!(node.getTextTrim().equals(""))){  
             System.out.println( node.getName() + ":" + node.getText());
             map.put(node.getName(), node.getText());
        }  
        //同时迭代当前节点下面的所有子节点  
        //使用递归  
        Iterator<Element> iterator = node.elementIterator();  
        while(iterator.hasNext()){  
            Element e = iterator.next();  
            getNodes(map,e);  
        }
    }


四:增加新节点一节属性和内容(具体可以查dom4j的文档)

        Element user = root.addElement("teacher");
        user.addAttribute("id", "No1");
        user.setText("教师一");

五:保存XML

        XMLWriter writer = new XMLWriter(new FileWriter(new File("e:\\teach.xml")));
        writer.write(document);
        writer.close();



  




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值