代码改变世界

dom4j创建、解析xml文件(增删改查)

2017-04-27 17:06  wenky_wu  阅读(1098)  评论(0)    收藏  举报

先对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>