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

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);
	}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值