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();//任何時候都不要忘記關閉流

    }


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM