dom4j在指定位置添加标签更新标签

来源:互联网 发布:android快递查询源码 编辑:程序博客网 时间:2024/06/05 17:47

stu.xml在张三下面添加性别标签

<?xml version="1.0" encoding="UTF-8"?><exam>   <student>     <name>张三</name>      <location>西安</location>      <grade>98</grade>      <学校>西瓜大</学校>   </student>    <student>     <name>李四</name>      <location>临潼</location>      <grade>59</grade>   </student> </exam>

Add.java

package Dom4j;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;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 Add {public static void main(String[]args) throws DocumentException, IOException{  SAXReader reader = new SAXReader();  Document document = reader.read("src/stu.xml");  Element root = document.getRootElement();  Element student=root.element("student");  List list=student.elements();  Element ele=DocumentHelper.createElement("sex");      ele.setText("男");  list.add(1,ele);        OutputFormat format = OutputFormat.createPrettyPrint();  format.setEncoding("UTF-8");  XMLWriter  writer = new XMLWriter( new FileOutputStream("src/stu.xml"), format );      writer.write( document );      writer.close();}}
只需要把 list 标签进行修改便可,不必想着如何把list写到document上。

将李四的59分改为60分。

  SAXReader reader = new SAXReader();  Document document = reader.read("src/stu.xml");  Element root = document.getRootElement();  Element student=(Element) root.elements("student").get(1);  student.element("grade").setText("60");  OutputFormat format = OutputFormat.createPrettyPrint();  format.setEncoding("UTF-8");  XMLWriter  writer = new XMLWriter( new FileOutputStream("src/stu.xml"), format );      writer.write( document );      writer.close();



0 0
原创粉丝点击