利用DOM4J中SAXReader来快速读取xml文档,同时使用Document来快速操作xml文档元素
所需被读取的xml文档内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="1"><![CDATA[test1]]></person>
<person id="2"><![CDATA[test2]]></person>
</persons>
具体Java代码实现如下:
public class ChangeXml {
public static void main(String[] args) {
// 获取 persons.xml 文件 路径
String path = ChangeXml.class.getClassLoader().getResource("person.xml").getPath();
// 获取到 persons.xml 文件对象
File file = new File(path);
// 读取 persons.xml 文档里面的内容
// 1、利用 SAXReader 对象
SAXReader saxReader = new SAXReader();
Document doc = null;
try {
// 获取 Doc 文档对象
doc = saxReader.read(file);
// 获取 根节点
Element root = doc.getRootElement();
// 获取根节点下面所有子节点元素
List<Element> eles = root.elements();
Element e3 = DocumentHelper.createElement("person");
Attribute attr3 = DocumentHelper.createAttribute(e3,"id","3");
e3.add(attr3);
e3.addCDATA("test3");
// 将 e3 元素添加到 element 集合中去
eles.add(e3);
} catch (DocumentException e) {
e.printStackTrace();
}
// 按照 UTF-8 编码 对文档进行格式化
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
// 利用 XMLWriter 类 将内容输出到 person.xml 文件中
XMLWriter writer = null;
try {
writer = new XMLWriter(new FileOutputStream(file),format);
if(writer != null && doc != null) {
writer.write(doc);
writer.close();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
最终运行结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="1"><![CDATA[test1]]></person>
<person id="2"><![CDATA[test2]]></person>
<person id="3"><![CDATA[test3]]></person>
</persons>