dom4j解析XML实例

1 篇文章 0 订阅

其中要导入的包为

dom4j-1.6.1.jar

jaxen-1.1-beta-6.jar

<span style="white-space:pre">	</span>/**
	 * 实现添加用户信息到数据库(XML)中
	 */
	public void add(User user) {
		/**
		 * dom4j来解析XML
		 * 其中该user.xml格式为
		 * <users>
		 * 		<user username="张三" password="123"/>
	     <span style="white-space:pre">	</span> * 		<user username="王五" password="333"/>
		 * </users>
		 */
		SAXReader reader = new SAXReader();
		try {
			String path = "user.xml";
			Document doc = reader.read(path);
			// 得到根元素
			Element root = doc.getRootElement();
			// 通过根元素创建新元素,addElement表示已经附属于root了,就不用root.add(ele)这句话了
			Element ele = root.addElement("user");
			// 添加属性
			ele.addAttribute("username", user.getUsername());
			ele.addAttribute("password", user.getPassword());
			/**
			 * 回写文档,这一块格外重要
			 */
			// 创建格式化输出器
			/**
			 * 首先我们要知道,不带true参数的输出流构造都是重写
			 * new FileOutputStream(path):这是重写
			 * new FileOutputStream(path,true)这是往后添加
			 * 这里‘输出化格式器’的意思就是
			 * 1.要处理的内容一开始必须清空所有换行和缩进,形成所有内容在一行的形式
			 * 2.再把要处理的内容按照制表符上下层标签递进,并且上下层要换行
			 */
			OutputFormat format = new OutputFormat("\t", true);// 用制表符分割,标签之间需要换行
			format.setTrimText(true);// 清空原有换行和缩进
			// 创建XMLWriter
			XMLWriter writer;
			try {
				/**
				 * 解释一下:本来是可以用FileWriter这个类的即
				 * writer = new XMLWriter(new FileWriter(path), "UTF-8"), format);
				 * 但是因为FileWriter这个类设计时没有给予处理编码的方法
				 * 所以只有用OutputStreamWriter来设置编码了
				 * 
				 */
				writer = new XMLWriter(new OutputStreamWriter(
						new FileOutputStream(path), "UTF-8"), format);
				writer.write(doc);
				writer.close();
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				throw new RuntimeException();
			}
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			throw new RuntimeException();
		}

	}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值