Java使用dom4j對xml進行簡單操作

XML樣例

<?xml version="1.0" encoding="utf-8" ?>
<!-- xml的一個聲明頭,告訴解析器版本號與編碼集 -->
<!-- 
 在 xml文件中所有的標籤都可以自定義,
	1.必須成雙成對,有頭有尾。
	2.xml文件中有且只有一個根節點
	3.xml標籤可以帶有屬性,可以相互嵌套
	4.xml標籤命名一定要見名知意
	5.xml標籤一般都是小寫。
 -->
<Students>
	<Student id="001">
		<name>學生一</name>
		<sex></sex>
		<age>16</age>
	</Student>
	<Student id="002">
		<name>學生二</name>
		<sex></sex>
		<age>16</age>
	</Student>
	<Student id="003">
		<name>學生三</name>
		<sex></sex>
		<age>16</age>
	</Student>
</Students>

java引入dom4j後進行讀取操作


import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.tree.DefaultAttribute;

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

public class XmlParseDemoOne {
    public static void main(String[] args) throws DocumentException {
        // 1.獲取xml對應的document對象
        Document document = new SAXReader().read(new File("./src/student.xml"));
        // 2.獲取根結點對象
        Element rootElement = document.getRootElement();
        // 3.獲取所有student節點
        List<Element> nodeTypeName = rootElement.selectNodes("Student");
        // nodeTypeName.forEach(item->System.out.println(item));
        
        // xpath
        List<Element> list = rootElement.selectNodes("//name");
        // 獲取對應的值
        // list.forEach(item-> System.out.println(item.getStringValue()));

        List<DefaultAttribute> list1 = rootElement.selectNodes("//@id");
        // list1.forEach(item->System.out.println(item.getValue()));

        List list2 = rootElement.selectNodes("//Students//Student[1]");
        System.out.println(list2);
    }
}

java對Xml進行寫入操作


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

import java.io.*;

public class XmlParseDemoThree {
    public static void main(String[] args) throws IOException, DocumentException {
        // 1.獲取xml對應的document對象
        // 2.獲取根節點對象。
        Document document = new SAXReader().read(new File("./src/teacher.xml"));
        Element rootElement = document.getRootElement();
        rootElement.remove(rootElement.attribute("id"));
        /** 格式化輸出,類型IE瀏覽一樣 */
        OutputFormat format = OutputFormat.createPrettyPrint();
        /** 指定XML編碼 */
        format.setEncoding("UTF-8");
        XMLWriter xmlWriter = new XMLWriter(new FileWriter(new File("./src/teacher.xml")),format);
        xmlWriter.write(document);
        xmlWriter.close();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章