您的位置:首页 > 其它

DOM4J 学习总结之 修改节点信息 将内存的DOM输出到xml文件

2014-05-10 23:03 351 查看

1.修改,删除节点并输出XML

@Test
public void testWrite3() throws Exception {
InputStream is = TestPerson.class
.getResourceAsStream("/cn/itcast/dom4j/person.xml");
Document doc = new SAXReader().read(is);

Element rootElement = doc.getRootElement();
/* ~~~~~~~~~~~ 修改元素 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// 修改元素的文本
// rootElement.element("person").element("phone").setText("1311111111");

// List<Element> eList = rootElement.elements("person");
// Element person = eList.get(2);

// 修改属性值
// person.addAttribute("id", "004");

/* ~~~~~~~~~~~ 删除元素 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

// 删除元素:第一种方式
Element person = (Element) rootElement.elements("person").get(0);
// person.getParent().remove(person);

// 删除元素:第二种方法
// person.detach();

Attribute attr = person.attribute("id");

// 删除属性:第二种方式
attr.detach();

// 删除属性:第一种方式
// person.remove(attr);

// 1.准备文件输出流
// 字节流输出方式。最好用字节流进行输出!!!
OutputStream out = new FileOutputStream("e:\\person2.xml");
// Writer out = new FileWriter("e:\\person2.xml");//字符流的输出方式

// 2.设置xml的格式
// 紧凑的格式。没有缩进,换行。用于网络传输的
// OutputFormat format = OutputFormat.createCompactFormat();

// 漂亮的格式。包括空格、缩进,换行。给程序员自己看的。
OutputFormat format = OutputFormat.createPrettyPrint();

// 设置xml文档的编码
// 影响了xml文档内容保存的编码 和 xml声明编码
format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(out, format);
writer.write(doc);
writer.close();
}


2.创建DOM,并输出到XML

public void testWrite2() throws Exception {

// 1.创建Docuement
Document doc = DocumentHelper.createDocument();

// 2.创建元素对象
Element rootElement = DocumentHelper.createElement("person-list");

// 3.把元素放入Document节点
doc.add(rootElement);

// 添加注释:第一种方式
rootElement.addComment("这是第一个联系人");

// 添加元素:第一种方式
Element person = DocumentHelper.createElement("person");
person.setText("eric");
rootElement.add(person);
// 添加元素:第二种方式
person.addElement("name").setText("zhangsan");

// 添加属性:第一种方式
Attribute authorAttr = DocumentHelper.createAttribute(person, "author",
"jacky");
person.add(authorAttr);

// 添加属性:第二种方式
person.addAttribute("id", "001");

// 添加注释:第一种方式
Comment comment = DocumentHelper.createComment("这是第二个联系人");
List<Node> nList = rootElement.elements();
nList.add(0, comment);

writeToXml(doc);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: