dom4j(Java code)
时间:2011-01-28
import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Dom4jDemo {
public boolean createXML(String fileName){
boolean isOk= false;
//建立document对象
Document doc= DocumentHelper.createDocument();
//建立XML文档的根books
Element students= doc.addElement("students");
students.addComment("This is a test for dom4j");//加入一行注释
/**加入第一个student节点*/
Element student= students.addElement("student");//加入第一个student节点
student.addAttribute("value","god");//加入value属性和值
Element name= student.addElement("name");//加入name节点
name.setText("finina");//为name设置值
Element age=student.addElement("age");//加入age节点
age.setText("25");//为age设置值
Element sex=student.addElement("sex");//加入sex节点
sex.setText("male");//为sex设置值
/**加入第二个student节点*/
student= students.addElement("student");
student.addAttribute("value","cat");
name= student.addElement("name");
name.setText("fly");
age=student.addElement("age");
age.setText("17");
sex=student.addElement("sex");
sex.setText("female");
/**加入team节点*/
Element team=students.addElement("team");
team.addText("05093A");
/**
*将doc中的内容写入xml文件中
**/
try{
OutputFormat format= OutputFormat.createPrettyPrint();//设置格式
format.setEncoding("GBK");//必要,否则无法解析中文
//输出为文件
XMLWriter writer= new XMLWriter(new FileWriter(fileName),format);
writer.write(doc);
writer.flush();
//
isOk= true;
}catch(Exception e){
e.printStackTrace();
}
return isOk;
}
public boolean modifigXML(String oldFileName,String newFileName){
boolean isOk= false;
try{
SAXReader reader= new SAXReader();//创建SAX阅读器
Document doc= reader.read(new File(oldFileName));//将所有文件内容读取生存Document对象
/**修改内容之一: 如果student节点中value属性的内容为god,则修改成king
*因为做人不能太嚣张
*/
List list= doc.selectNodes("/students/student/@value");//搜索出所有位于students节点下的student节点中的value属性位置放入集合中
Iterator iter= list.iterator();//加载迭代器
//迭代集合
while(
|