JSON

DOM4j对XML文件的操作

字号+ 作者:H5之家 来源:H5之家 2015-11-03 15:32 我要评论( )

DOM4j对XML文件的操作

Dom4j也可以很方便完成XML文档的创建、元素的修改、文档的查询遍历等

dom4j的包以及其它依赖包下载地址

    解压之后

,将里面的dom4j-1.6.1.jar这个文件直接放在项目里面,建一个lib文件夹,邮件,直接添加Add to Build Path即可构建到项目中去了.

   1.xml文件

<?xml version="1.0" encoding="UTF-8"?> <all> <user id="10"> <name> 张三 </name> <age>18</age> </user> <user id="11"> <name>Tom</name> <age>10</age> </user> </all> 2-1 增加文档中的user对象

<span style="font-size:18px;"> @Test public void add(){ SAXReader read=new SAXReader(); try { Document dom=read.read("./src/xml/1.xml"); Element root=dom.getRootElement(); Element userE=root.addElement("user"); userE.addAttribute("id", "110");//设置属性 Element nameE=userE.addElement("name");//在节点下添加一个name节点 nameE.setText("jimi");//为name标签里面添加值 /*Element nameE=userE.addElement("name");//添加一个name标签 nameE.setText("jimi");//为name标签里面添加值 两句可以修改为 userE.addElement("name").setText("jimi");//是一样的 * */ Element ageE=userE.addElement("age");//添加一个age标签 ageE.setText("17");//为age添加值 //以上只是添加,并没有存储到文件里面去,将dom写到文件中去 XMLWriter wr=new XMLWriter(new FileOutputStream("./src/xml/1.xml")); wr.write(dom); wr.close(); } catch (DocumentException e) { throw new RuntimeException("xml文件读取失败"+e.getMessage()); } catch (IOException e) { throw new RuntimeException("文件存储失败"+e.getMessage()); } </span> 2-2 对文件中元素进行删除

<span style="font-size:18px;">@Test public void Del() throws Exception{ /* * 删除name=tom的user标签,我们必须找到root下面的user节点,然后根据user节点去查找name节点里面的值 */ //获取文件内容 SAXReader read=new SAXReader(); Document dom=read.read("./src/xml/1.xml"); Element root=dom.getRootElement();//获得根节点 //从xml文件中,有三个user元素,需要遍历所有的,然后根据条件去删除 Iterator it=root.elementIterator("user");//遍历root节点里面的所有name标签元素 while(it.hasNext()){ Element ele=(Element) it.next(); Iterator itn=ele.elementIterator("name"); while(itn.hasNext()){ Element e=(Element) itn.next(); if("Tom".equals(e.getText())){ e.getParent().getParent().remove(e.getParent());//name的父节点为user user的父节点才能移除user节点 } }}</span><span style="font-size:18px;"> XMLWriter wr =new XMLWriter(new FileOutputStream("./src/xml/1.xml"));//文件修改好了之后存储到相应问的位置 wr.write(dom); wr.close(); }</span>

2-3对文件中的元素进行修改

<span style="font-size:18px;"> @Test public void upadte() throws Exception{ /*和删除差不多,只需要找到之后name.setText("张四");就可以了 * 之前删除采用的iterator,这里采用root.elements("user")获得list来进行遍历 * 把name=张三的修改为张四 */ SAXReader read =new SAXReader(); Document dom=read.read("./src/xml/1.xml"); Element root=dom.getRootElement(); List list=root.elements("user"); int length=list.size(); for(int i=0;i<length;i++){ Element userE=(Element) list.get(i); List nameL=userE.elements("name"); for(int j=0;j<nameL.size();j++){ Element name=(Element) nameL.get(j); //System.out.println(name.getText()); if("张三".equals(name.getText().trim())){ name.setText("张四"); System.out.println(name.getText()); } } } XMLWriter wr=new XMLWriter(new FileOutputStream("./src/xml/1.xml")); wr.write(dom); wr.close(); }对于采用dom4j方式来xml格式进行增删改查,必须要得到要操作的节点元素,要是很多,就采用获得list的方式 <span style="white-space:pre"> </span> * 如:List<Element> list2=userssE.elements("user"),然后根据需要第几个操作,比如,第一个(元素)    list2.get(0)是Element <span style="white-space:pre"> </span>要是下面还有很多,照样转换成list数组,一次类推,一定可以找到相应的元素节点</span> 2-4 对文件中的元素进行遍历

<span style="font-size:18px;">@Test public void getAll() throws Exception{ SAXReader read =new SAXReader(); Document dom=read.read("./src/xml/1.xml"); Element root=dom.getRootElement(); Iterator it=root.elementIterator(); while(it.hasNext()){ Element ele=(Element) it.next(); System.out.println(ele.getName()); System.out.println(ele.getText()); //dosomething } }</span>

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

  • JSON Schema 那些事儿:基本概念

    JSON Schema 那些事儿:基本概念

    2016-01-31 10:32

  • 未来编程的9大猜想:JavaScript不必亲自编写

    未来编程的9大猜想:JavaScript不必亲自编写

    2016-01-30 13:01

  • Objective-C与JavaScript交互的那些事

    Objective-C与JavaScript交互的那些事

    2016-01-30 13:00

网友点评
p