Java如何使用dom4j实现对xml简单的增删改查
这篇文章主要讲解了Java如何使用dom4j实现对xml简单的增删改查,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
xml留了个结课作业: 后台用xml文件作为存储做个迷你系统实现增删改查的功能, 在此记录一下
先得引入dom4j的jar包放在项目的WEB-INF-->lib目录下
先新建一个读取器, 读取你想操作的xml文件(我这里写的绝对路径)
//读取XML文件,获得document对象SAXReader reader = new SAXReader();Document document = null;try {document = reader.read(new File("E:\\eclipse\\XmlTest\\src\\xml\\user.xml"));} catch (DocumentException e) {e.printStackTrace();}
上边的try catch不加的话eclipse会报错, 因为涉及到文件操作, document不初始为null化也会报错
//获得根节点的属性对象Element rootElem = document.getRootElement();
基本语句:
//以下操作以root为例,所有节点都可以并非只有根节点,下面的孩子指第一代孩子 //返回root节点的标签名为"user"的孩子节点,如果有多个只返回第一个Element contactElem = rootElem.element("user"); //获取节点标签之间的内容String text=contactElem .getText(); //返回所有的孩子节点,即一个List<Element>List<Element> eles = rootElem.elements(); //返回该节点的属性,返回的是一个对象Attribute rootAttr = rootElem.attribute("id"); //更改属性值rootAttr.setValue("更改后的id值"); //给元素新增属性和属性值rootElem.addAttribute("name", "新增成功!"); //删除节点的某属性rootElem.remove(rootAttr); //节点和节点的属性都可以获取名字(标签名/属性名)String idName = rootAttr.getName();String tagName = rootElem.getName(); //获取属性的属性值String value=rootAttr.getValue();
所有涉及到修改增加的操作, 修改完dom对象后都要写回文件:
OutputFormat format=OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File(这里填你的xml路径)), format);writer.write(document);writer.close();以下都省略文件的读取和document / rootElem的获取(上面提到过)查
我这里有个用户表如下, 做后端的账号密码存储
//user, password是前台传来的账号密码boolean RightPassword=false;List<Element> eles = rootElem.elements();for (Element ele : eles) { if(ele.element("account").getText().equals(user)) { if(ele.element("password").getText().equals(password)) RightPassword=true; return; }}增
这里拿另一个xml举例, 该xml存储文章
示例增加一个文章,大家可以做的更复杂一些
Element newArticle=rootElem.addElement("article");newArticle.setText("文章内容");//以下的输出文件和上面提到的一样OutputFormat format=OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);writer.write(document);writer.close();删
下面示例按标签内容删除一个节点
(应该按某个属性值如id删除,因为上例追求简单没设属性)
List<Element> eles = rootElem.elements();for (Element ele : eles) {if(ele.getText().equals("按照内容删除")){rootElem.remove(ele);}}//以下的输出文件和上面提到的一样OutputFormat format=OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);writer.write(document);writer.close();改
和上面的删除只有一句不同, 找到节点后想修改什么就 set什么就可以了
List<Element> eles = rootElem.elements();for (Element ele : eles) {if(ele.getText().equals("按照内容修改")){ele.setText("修改后的内容");}}//以下的输出文件和上面提到的一样OutputFormat format=OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");org.dom4j.io.XMLWriter writer=new org.dom4j.io.XMLWriter(new FileOutputStream(new File("你的xml路径")), format);writer.write(document);writer.close();
看完上述内容,是不是对Java如何使用dom4j实现对xml简单的增删改查有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。