Java中的Dom4j

 

  上一篇讲了Java中如何操作XML,现在介绍一个更厉害的方法,Dom4j ,百度查一下就知道,这个更强,更快,更简单。

自己下载jar包导入工具,下面来讲一个例子,我事先准备了一个XML文件,如下:

<?xml version="1.0" encoding="utf-8" ?>
<Loves>
    <love>
        <name>许嵩</name>
        <age>32</age>
    </love>
    <love>
        <name>林俊杰</name>
        <age>33</age>
    </love>
</Loves>

一、使用Dom4j读取XML文件的内容

package com.StadyJava.Dom4jDemo;

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

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

public class test {

    public static void main(String[] args) throws  Exception{
        Dom4j();

    }
    private static File file=new File("F:\\Study Java\\ch1helloworld\\src\\main\\java\\com\\StadyJava\\Dom4jDemo\\Love.xml");

    public static void Dom4j() throws  Exception{
        //获取文档对象
        SAXReader reader=new SAXReader();
        Document doc=reader.read(file);
        //获取根元素
        Element root=doc.getRootElement();
        //获取所有的子元素Love
        List<Element> lovelist = root.elements("love");
        //输入name元素的内容
        for (Element element : lovelist) {
            System.out.println(element.elementTextTrim("name"));
            System.out.println("---------------");
        }

    }


}

 

二、使用Dom4j对XML新增一些内容

 

package com.StadyJava.Dom4jDemo;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

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

public class test {

    public static void main(String[] args) throws  Exception{
        Dom4jAdd();

    }
    private static File file=new File("F:\\Study Java\\ch1helloworld\\src\\main\\java\\com\\StadyJava\\Dom4jDemo\\Love.xml");

    public static void Dom4jAdd() throws  Exception{
        //获取文档对象
        SAXReader reader=new SAXReader();
        Document doc=reader.read(file);
        //获取根元素
        Element root=doc.getRootElement();
        //创建一个love元素,作为根元素的子元素
        Element lovenew=root.addElement("love");
        //Element lovenew=root.addElement("love").addAttribute("id","1"); 如果你的love元素有属性,可以这样写
        //为love新元素添加name、age元素并且赋值
        lovenew.addElement("name").setText("蜀云泉");
        lovenew.addElement("age").setText("23");

        //在内存里面的XML已经完成,现在同步内存到磁盘,同步到磁盘有两种方式:第一种都在一行,可读性差,但是没有了空格和换行,性能占优。 第二种,拥有漂亮的格式,有换行和空格,可读性强。二选一
        //同步第一种,都在一行,优点:性能  缺点:可读性差
        FileWriter out =new FileWriter(file);
        doc.write(out);
        out.close();//关闭流,如果不关闭,那么你的XML文件会变空

        //同步第二种,有格式,优点:可读性强   缺点:性能差一点
        OutputFormat format=OutputFormat.createPrettyPrint();
        XMLWriter writer=new XMLWriter(new FileWriter(file),format);
        writer.write(doc);
        writer.close();//任何时候都不要忘记关闭流

    }


}

 

转载于:https://www.cnblogs.com/yunquan/p/10113409.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值