本文主要是介绍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 ();
}
}
这篇关于Dom4j解析【开发中常用】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!