需要导包: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
();
}
}