【dom4j】java解析XML

编程入门 行业动态 更新时间:2024-10-23 22:28:10

【<a href=https://www.elefans.com/category/jswz/34/1702672.html style=dom4j】java解析XML"/>

【dom4j】java解析XML

dom4j用于解析xml,可以对xml文件进行操作,dom4j官方地址为dom4j

下面将演示使用dom4j对文件进行增删改查操作

xml原始文件为

<students><student id="001"><name>绘梨衣</name><age>20</age><gender>女</gender></student><student id="002"><name>北原伊织</name><age>20</age><gender>男</gender></student>
</students>

查询操作

代码如下

    public void query() throws DocumentException {//得到解析器SAXReader reader = new SAXReader();//指定解析文件Document document = reader.read(new File("src/student.xml"));//获取根节点Element rootElement = document.getRootElement();//获取所有student元素List<Element> students = rootElement.elements("student");for (Element student : students) {List<Element> list = student.elements();for (Element element : list) {System.out.println(element.getText());}}}

这段代码将查询xml文件中的所有student,下面为控制台输出

 增加操作

    public void add() throws DocumentException, IOException {//得到解析器SAXReader reader = new SAXReader();//指定解析文件Document document = reader.read(new File("src/student.xml"));//得到根节点Element rootElement = document.getRootElement();//创建一个新的student节点Element newElement = DocumentHelper.createElement("student");//为student节点添加属性newElement.addAttribute("id", "003");//创建student的子节点Element name = DocumentHelper.createElement("name");name.setText("路飞");Element age = DocumentHelper.createElement("age");age.setText("18");Element gender = DocumentHelper.createElement("gender");gender.setText("男");//将创建的子节点加入student中newElement.add(name);newElement.add(age);newElement.add(gender);rootElement.add(newElement);//将xml进行更新XMLWriter xmlWriter = new XMLWriter(new FileWriter("src/student.xml"));xmlWriter.write(document);xmlWriter.close();}

这端代码将添加一个新的student,并且student拥有name,age,gender元素,还有一个id属性,运行后的xml文件为

<students><student id="001"><name>绘梨衣</name><age>20</age><gender>女</gender></student><student id="002"><name>北原伊织</name><age>20</age><gender>男</gender></student><student id="003"><name>路飞</name><age>18</age><gender>男</gender></student>
</students>

更新操作

    public void update() throws DocumentException, IOException {//得到解析器SAXReader reader = new SAXReader();//指定解析文件Document document = reader.read(new File("src/student.xml"));//通过xpath进行查询Element age = (Element) document.selectSingleNode("//students//student[@id='003']//age");age.setText("20");//将xml进行更新XMLWriter xmlWriter = new XMLWriter(new FileWriter("src/student.xml"));xmlWriter.write(document);xmlWriter.close();}

这段代码使用xpath进行查询(注意:使用xpath需要引入一个jaxen包,链接为jaxen),将student中id为003的age更新为20。更新后xml文件为

<students><student id="001"><name>绘梨衣</name><age>20</age><gender>女</gender></student><student id="002"><name>北原伊织</name><age>20</age><gender>男</gender></student><student id="003"><name>路飞</name><age>20</age><gender>男</gender></student>
</students>

删除操作

    public void delete() throws DocumentException, IOException {//得到解析器SAXReader reader = new SAXReader();//指定解析文件Document document = reader.read(new File("src/student.xml"));//通过xpath进行查询Element student = (Element) document.selectSingleNode("//students//student[@id='003']");//将该student删除student.getParent().remove(student);//将xml进行更新XMLWriter xmlWriter = new XMLWriter(new FileWriter("src/student.xml"));xmlWriter.write(document);xmlWriter.close();}

这段代码使用xpath找到student中id为003的,并将其删除。删除后的结果为

<students><student id="001"><name>绘梨衣</name><age>20</age><gender>女</gender></student><student id="002"><name>北原伊织</name><age>20</age><gender>男</gender></student>
</students>

总结

dom4j使用的并不多,会基本的增删改查即可,遇到不会的操作查询官方文档就行了,再一次的给出dom4j的官方网址dom4j

更多推荐

【dom4j】java解析XML

本文发布于:2024-02-12 22:22:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1689631.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:dom4j   java   XML

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!