如何通过dom4j在Java中实现XML的增删改查操作示例?

2026-05-26 11:291阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1066个文字,预计阅读时间需要5分钟。

如何通过dom4j在Java中实现XML的增删改查操作示例?

本文实例讲述了Java使用dom4j实现XML的简单增删改查操作。以下内容供大家参考:

XML留作业:后台使用XML文件作为存储,实现一个迷你系统的功能:添加、删除、修改和查询数据。

具体如下:

1.使用XML文件作为存储,实现添加功能。

2.使用XML文件作为存储,实现删除功能。

3.使用XML文件作为存储,实现修改功能。

4.使用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什么就可以了

如何通过dom4j在Java中实现XML的增删改查操作示例?

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();

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
tools.jb51.net/code/xmljson

在线格式化XML/在线压缩XML:
tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:
tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
tools.jb51.net/code/xmlcodeformat

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

标签:

本文共计1066个文字,预计阅读时间需要5分钟。

如何通过dom4j在Java中实现XML的增删改查操作示例?

本文实例讲述了Java使用dom4j实现XML的简单增删改查操作。以下内容供大家参考:

XML留作业:后台使用XML文件作为存储,实现一个迷你系统的功能:添加、删除、修改和查询数据。

具体如下:

1.使用XML文件作为存储,实现添加功能。

2.使用XML文件作为存储,实现删除功能。

3.使用XML文件作为存储,实现修改功能。

4.使用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什么就可以了

如何通过dom4j在Java中实现XML的增删改查操作示例?

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();

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
tools.jb51.net/code/xmljson

在线格式化XML/在线压缩XML:
tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:
tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
tools.jb51.net/code/xmlcodeformat

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

标签: