dom4j解析XML实例

来源:互联网 发布:js禁止文本框输入 编辑:程序博客网 时间:2024/06/05 02:06

其中要导入的包为

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);// 清空原有换行和缩进// 创建XMLWriterXMLWriter 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 blockthrow new RuntimeException();}} catch (DocumentException e) {// TODO Auto-generated catch blockthrow new RuntimeException();}}


                                             
0 0
原创粉丝点击