/**
*
修改
XML
文件中内容
,
并另存为一个新文件
*
重点掌握
dom4j
中如何添加节点
,
修改节点
,
删除节点
*
@param
filename
修改对象文件
*
@param
newfilename
修改后另存为该文件
*
@return
返回操作结果
,
0
表失败
,
1
表成功
*/
public
int
ModiXMLFile(String
filename,String
newfilename){
int
returnValue
=
0;
try
{
SAXReader
saxReader
=
new
SAXReader();
Document
document
=
saxReader.read(
new
File(filename));
/**
修改内容之一
:
如果
book
节点中
show
属性的内容为
yes,
则修改成
no
*/
/**
先用
xpath
查找对象
*/
List
list
=
document.selectNodes(
"/books/book/@show"
);
Iterator
iter
=
list.iterator();
while
(iter.hasNext()){
Attribute
attribute
=
(Attribute)iter.next();
if
(attribute.getValue().equals(
"yes"
)){
attribute.setValue(
"no"
);
}
}
/**
*
修改内容之二
:
把
owner
项内容改为
Tshinghua
*
并在
owner
节点中加入
date
节点
,date
节点的内容为
2004
-
09
-
11,
还为
date
节点添加一个属性
type
*/
list
=
document.selectNodes(
"/books/owner"
);
iter
=
list.iterator();
if
(iter.hasNext()){
Element
ownerElement
=
(Element)iter.next();
ownerElement.setText(
"Tshinghua"
);
Element
dateElement
=
ownerElement.addElement(
"date"
);
dateElement.setText(
"2004-09-11"
);
dateElement.addAttribute(
"type"
,
"Gregorian calendar"
);
}
/**
修改内容之三
:
若
title
内容为
Dom4j
Tutorials,
则删除该节点
*/
list
=
document.selectNodes(
"/books/book"
);
iter
=
list.iterator();
while
(iter.hasNext()){
Element
bookElement
=
(Element)iter.next();
Iterator
iterator
=
bookElement.elementIterator(
"title"
);
while
(iterator.hasNext()){
Element
titleElement=(Element)iterator.next();
if
(titleElement.getText().equals(
"Dom4j Tutorials"
)){
bookElement.remove(titleElement);
}
}
}
try
{
/**
将
document
中的内容写入文件中
*/
XMLWriter
writer
=
new
XMLWriter(
new
FileWriter(
new
File(newfilename)));
writer.write(document);
writer.close();
/**
执行成功
,
需返回
1
*/
returnValue
=
1;
}
catch
(Exception
ex){
ex.printStackTrace();
}
}
catch
(Exception
ex){
ex.printStackTrace();
}
return
returnValue;
}
|