91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中如何使用DOM4J生成xml文件并解析xml文件

發布時間:2021-09-10 11:43:29 來源:億速云 閱讀:244 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Java中如何使用DOM4J生成xml文件并解析xml文件”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java中如何使用DOM4J生成xml文件并解析xml文件”這篇文章吧。

準備依賴

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

生成xml文件生成標準展示

Java中如何使用DOM4J生成xml文件并解析xml文件

生成xml代碼

/**
     * 使用DOM4J生成xml方法
     */
    public static void createXml(){
        try {
            // 創建document對象
            Document document = DocumentHelper.createDocument();
            // 創建根節點bookRoot
            Element StudentRoot = document.addElement("StudentRoot");
            // 向根節點中添加第一個節點
            Element book1 = StudentRoot.addElement("student");
            // 向子節點中添加屬性
            book1.addAttribute("id","1");
            // 向節點中添加子節點
            Element name = book1.addElement("name");
            // 向子節點賦值
            name.setText("小喬");
            Element price = book1.addElement("age");
            price.setText("18");
            // 向根節點中添加第二個節點
            Element book2 = StudentRoot.addElement("student");
            book2.addAttribute("id","2").addElement("name").setText("大橋");
            book2.addElement("age").setText("20");

            // 向根節點中添加第三個節點
            Element book3 = StudentRoot.addElement("student");
            book3.addAttribute("id","3").addElement("name").setText("孫策");
            book3.addElement("age").setText("21");

            // 設置生成xml的格式
            OutputFormat of = OutputFormat.createPrettyPrint();
            // 設置編碼格式
            of.setEncoding("UTF-8");

            // 生成xml文件
            File file = new File("E:\\student.xml");
            if (file.exists()){
                file.delete();
            }
            //創建一個xml文檔編輯器
            XMLWriter writer = new XMLWriter(new FileOutputStream(file), of);
			//把剛剛創建的document放到文檔編輯器中
            writer.write(document);
            writer.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

解析xml文件

解析xml的文件就是剛剛導出的那個樣子,我們展示兩種情況,一個是知道屬性名字和子元素名字的我們把解析的xml文件數據放到實體類中.不知道的就直接打印到控制臺.

實體類展示

import lombok.Data;

@Data
public class Student {

    private int id;

    private String name;

    private int age;
}

解析xml文件方法

 public static void analysis(){
        // 把要解析的xml變成file文件
        File file = new File("E:\\student.xml");

        // 獲取解析器對象
        SAXReader reader = new SAXReader();
        // 把文件解析成document樹
        Document document = null;
        try {
            document = reader.read(file);
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        // 獲取根節點
        Element studentRoot = document.getRootElement();
        // 獲取根節點中所有節點
        List<Element> elements = studentRoot.elements();

        // 存放xml中節點的數據集合
        List<Student> list = new ArrayList<>();

        // 便利所有節點
        for (Element child : elements) {

            Student student = new Student();

            //已知屬性名情況下
            student.setId(Integer.parseInt(child.attributeValue("id")));//獲取屬性的數據
            //已知子元素名的情況下
            student.setName(child.elementText("name"));//獲取元素中值
            student.setAge(Integer.parseInt(child.elementText("age")));//獲取元素中值

            list.add(student);

            //未知屬性名情況下
            List<Attribute> attributes = child.attributes();
            for (Attribute attribute : attributes) {
                System.out.println(attribute.getName() + "---> " + attribute.getValue());
            }

            //未知子元素名情況下
            List<Element> elementList = child.elements();
            for (Element ele : elementList) {
                System.out.println(ele.getName() + "--->" + ele.getText());
            }
        }
        //把解析xml出來的數據集合打印
        list.forEach(x-> System.out.println(x));
    }

解析結果展示

Java中如何使用DOM4J生成xml文件并解析xml文件

以上是“Java中如何使用DOM4J生成xml文件并解析xml文件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新宁县| 无极县| 黑河市| 浠水县| 泰州市| 太原市| 庆城县| 衡南县| 仙居县| 当阳市| 宜宾市| 盐山县| 南雄市| 文山县| 维西| 青冈县| 冷水江市| 扶风县| 乌兰浩特市| 绥芬河市| 五华县| 扎囊县| 华池县| 高邮市| 卢氏县| 江西省| 南平市| 北宁市| 天津市| 古浪县| 南阳市| 漠河县| 石泉县| 屏南县| 梁河县| 邛崃市| 军事| 东兰县| 平定县| 长垣县| 长岛县|