dom4j,读,写,解析,xml文件 示例代码

/*****************************************************/
//>dom4j 读写解析xml文件
/*****************************************************/
public class Test {
mi.attributeIterator();//取出节点上所有的属性
	/**
	 * 写xml
	 */
	public static void writeDocument() {
		try {
			Document document = DocumentHelper.createDocument();
			// 这个方法非常好用他主要将一窜字符窜的xml解析称dom树
			// DocumentHelper.parseText("");

			Element root = document.addElement("config");
			root.addAttribute("attr1", "value");
			Element mi = root.addElement("mainIndex");
			mi.setAttributeValue("name", "value");
			// setText("zhangsan")=<name>zhangsan</name>
			mi.setText("xxxx");// <mainIndex name="value">xxxx</mainIndex>
			save(document, "c:/test.xml");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void updateDocument() {
		try {
			SAXReader sr = new SAXReader();
			Document document = sr.read(new File("c:\\test.xml"));
			// lstEle.selectNodes("str")可以是xpath也可以是节点的名字
			// document.asXML() 可以把当前的任意元素的xml字符窜输出
			// <?xml version="1.0" encoding="UTF-8"?>
			// <config attr1="value"><mainIndex name="value"/></config>

			Element root = document.getRootElement();
			Element el = (Element) root.selectSingleNode("/config/mainIndex");
			// el.attribute("name").setValue("aaaaaaa");
			// el.attribute("name").setData("xxxxx");
			el.attribute("name").setText("bbbbb");

			save(document, "c:/test.xml");
			System.out.println(document.asXML());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 
	 * @param document
	 * @param savDir
	 *            将文档输出到的dir
	 */
	public static void save(Document document, String savDir) {
		try {
			FileOutputStream fos = new FileOutputStream(new File(savDir));
			XMLWriter xw = new XMLWriter(fos);
			xw.write(document);
			xw.flush();
			xw.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值