您的位置:首页 > 其它

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

2016-08-22 09:20 197 查看
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息