dom4j累加节点
dom4j追加节点
问题描述:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<sb tdt="123" kk="111"/>
<sb tdt="123" kk="222"/>
<sb tdt="123" kk="333"/>
</data>
想增加一条纪录,变成如下格式
<?xml version="1.0" encoding="UTF-8"?>
<data>
<sb tdt="123" kk="111"/>
<sb tdt="123" kk="222"/>
<sb tdt="123" kk="333"/>
<sb tdt="123" kk="444"/>
</data>
实现方法如下:
问题描述:
引用
<?xml version="1.0" encoding="UTF-8"?>
<data>
<sb tdt="123" kk="111"/>
<sb tdt="123" kk="222"/>
<sb tdt="123" kk="333"/>
</data>
想增加一条纪录,变成如下格式
<?xml version="1.0" encoding="UTF-8"?>
<data>
<sb tdt="123" kk="111"/>
<sb tdt="123" kk="222"/>
<sb tdt="123" kk="333"/>
<sb tdt="123" kk="444"/>
</data>
实现方法如下:
package com.xuz.****.june26; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class XMLAddTest { public static void main(String[] args) { File file = new File("c:/test.xml"); SAXReader reader = new SAXReader(); Document doc = null; try { doc = reader.read(file); } catch (DocumentException e) { e.printStackTrace(); } Element dataElement = doc.getRootElement(); Element sbNew = dataElement.addElement("sb"); sbNew.addAttribute("tdt", "123"); sbNew.addAttribute("kk", "444"); try { FileOutputStream fos = new FileOutputStream(file); // 用于格式化输出 // OutputFormat of = OutputFormat.createPrettyPrint(); // 格式化输出的另一个形式,不知这两种有什么区别 // 第1个参数为格式化输出缩排字符,此处为空格,第2个参数true为换行输出,false为单行输出 OutputFormat of = new OutputFormat(" ", false); // 输出为GBK码解决在windows下某些系统下打开含有中文xml乱码的情况 of.setEncoding("UTF-8"); XMLWriter xw = new XMLWriter(fos, of); xw.write(doc); xw.close(); } catch (IOException e) { e.printStackTrace(); } } }