先对xml文件进行解析,xml文件如下图所示
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<student1>
<studentID>001</studentID>
<name>sanny</name>
<major>computer</major>
<score>89</score>
</student1>
(1)首先要读入xml文件在这有两种方法读入:
一种是绝对路径也就是从电脑硬盘开始的路径
SAXReader reader = new SAXReader();
Document doc= reader.read(new File("E:\0 ksh\00 源码\com.cntrust.fileImport\student.xml"));
另一种是相对路径(对于相对路径后续会再详细说明)
Document doc = reader.read(new File("student.xml"));
(2)查:读取xml文件里面的内容
Element root = doc.getRootElement();获取根节点
一种全部读取利用循环遍历所有节点
for (Iterator iter = root.elementIterator(); iter.hasNext();){
Element e = (Element) iter.next();
System.out.println(e.getText());
}
另一种是读取你想要节点的内容
Element ec = (Element)root.selectSingleNode("name");或者 Element ec = root.element("score");
System.out.println(ec.getText());打印输出
(3)改写xml文件里面的内容
ec.setText("改为:50");
(4)增删
在某节点下添加子节点:
Element elm = newElm.addElement("sex");
elm.setText(“female");
删除某节点.root.remove(score);
最后一定要对xml文件进行写入
XMLWriter xmlWriter = new XMLWriter(new FileWriter("student.xml")); //dom4j提供了专门写入文件的对象XMLWriter
xmlWriter.write(doc);
xmlWriter.close();
下面是整个程序
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class value {
public static void main(String[] args) throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("student.xml"));
Element root = doc.getRootElement();
System.out.println(root.getName());
for (Iterator iter = root.elementIterator(); iter.hasNext();){
Element e = (Element) iter.next();
System.out.println(e.getText());
}
Element ec = root.element("score");//Element ec = (Element)root.selectSingleNode("name");
System.out.println(ec.getText());
ec.setText("50");
System.out.println(ec.getText());
Element sex = root.addElement("sex");
sex.setText("female");
root.remove(ec);
XMLWriter xmlWriter = new XMLWriter(new FileWriter("student.xml")); //dom4j提供了专门写入文件的对象XMLWriter
xmlWriter.write(doc);
xmlWriter.close();
}
}
运行结果:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<student1>
<studentID>001</studentID>
<name>sanny</name>
<major>computer</major>
<sex>female</sex>
</student1>