Dom4j解析【開發中常用】
需要導包:dom4j-1.6.1.jar jaxen-1.1-beta-6.jar
------讀取---------
package com. atguigu.xml.dom4j;
import java. util.Iterator;
import java. util.List;
import org. dom4j.Document;
import org. dom4j.Element;
import org. dom4j.io.SAXReader;
public class Dom4jParse {
//①查詢某一個節點 : 查詢id 為007的學員的所有資訊
public static void main(String[] args) throws Exception {
//1.獲取解析器物件
SAXReader reader = new SAXReader ();
//2.獲取Document 物件
Document document = reader.read( "XML/students.xml");
//3.獲取XML 文件的根節點物件
Element rootElement = document .getRootElement ();
//4.獲取所有的student 元素物件,並進行遍歷
List <Element > stuList = rootElement.elements( "student");
Iterator <Element > iterator = stuList .iterator ();
while (iterator .hasNext ()) {
Element stuEle = iterator .next ();
//5.獲取每一個student 元素物件的id屬性值
String idStr = stuEle .attributeValue ("id");
//6.檢測id 屬性值是否等於 007
if("007" .equals (idStr )) {
//7.如果等於則獲取name值和 age值
Element nameEle = stuEle .element ("name");
Element ageEle = stuEle .element ("age");
String nameStr = nameEle .getText ();
String ageStr = ageEle .getText ();
System .out .println ("name="+nameStr+"
age="+ageStr);
}
}
}
}
------寫入-----
package com. atguigu.xml.dom4j;
import java. io.FileWriter;
import org. dom4j.Document;
import org. dom4j.Element;
import org. dom4j.io.OutputFormat ;
import org. dom4j.io.SAXReader;
import org. dom4j.io.XMLWriter;
public class Dom4jEdit {
//②新增某一個節點 :
"姓名:張三丰,id:武當 ,年齡:108
public static void main(String[] args) throws Exception {
//1.獲取Document 物件
SAXReader reader = new SAXReader ();
Document document = reader.read( "XML/students.xml");
//2.構建並新增節點內容
/*
<student id=" 武當">
<name> 張三丰</name>
<age>108</age>
</student>
*/
//①獲取根節點,在根節點下,新增 student元素<student></student>
//②在新student 中新增id屬性 <student
id="武當"></student>
//③在新student 下面新增name元素 <student
id="武當"><name></name></student>
//④在新name 下新增文字<student
id="武當 "><name>張三丰</name></student>
//⑤在新student 下面新增age元素 <student
id="武當"><name> 張三丰</name><age></age></student>
//⑥在新age 下新增文字<student
id="武當 "><name>張三丰</name><age>108</age></student>
Element rootElement = document .getRootElement ();
rootElement
.addElement ("student")
.addAttribute ("id", " 武當")
.addElement ("name")
.addText ("張三丰 ")
.getParent ()
.addElement ("age")
.addText ("108");
//3.將更新的內容寫入XML文件
//①獲取XMlWriter 物件
//為了使XML 節點內容寫入後保持較好的格式,可以傳入一個格式物件
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter (new FileWriter("XML/studentsNewPretty.xml"), format);
//②將Document 物件寫入
writer .write (document );
//③關閉XMlWriter 物件
writer .close ();
}
}
相關文章
- java的XML解析(DOM4J技術)JavaXML
- DOM4J 解析 XML 之忽略轉義字元XML字元
- C#開發中常用加密解密方法解析C#加密解密
- node中的url常用方法解析
- Stable Diffusion中的常用術語解析
- XML和Dom4jXML
- iOS 開發中 runtime 常用的幾種方法iOS
- 中移鏈合約常用開發介紹 (一)開發基本流程
- 開發中最常用
- DOM 常用 API 解析API
- Android開發 - Context解析AndroidContext
- Java開發中Netty執行緒模型原理解析!JavaNetty執行緒模型
- iOS開發常用快捷鍵iOS
- java開發常用jar包JavaJAR
- 企業應用開發中.NET EF常用哪種模式?模式
- 中移鏈合約常用開發介紹(三)工程化開發智慧合約
- dom4j遍歷巢狀xml巢狀XML
- Flutter開發之JSON解析FlutterJSON
- Android開發 - DialogFragment 類解析AndroidFragment
- Android開發 - BrowseFragment 類解析AndroidFragment
- Android開發 - Creator 類從 Parcel 中建立新的物件解析Android物件
- ArkTS 中的 XML 解析與生成:應用開發實戰XML
- Android開發之常用佈局Android
- linux開發常用命令Linux
- iOS開發常用框架總覽!iOS框架
- java開發中常用linux命令JavaLinux
- iOS開發中常用的鎖iOS
- 大資料開發過程中Kafka日誌結構解析大資料Kafka
- 混合開發之phonegap開發相關知識解析
- 中移鏈合約常用開發介紹(四)工程樹目錄
- 嵌入式開發中Docker客戶端常用命令分享Docker客戶端
- DHCP常用配置檔案解析
- GIT常用命令解析Git
- postmen新增常用斷言解析
- helm常用命令解析
- PHP開發常用程式碼集錦PHP
- Android工程常用配置和開發技巧Android
- 專案開發常用的Git命令Git
- iOS開發常用之 HUD 彈窗iOS