JAVA语言-Xml,DOM4J 实现对XML文档的增、删、改、查的操作
小标 2018-08-30 来源 : 阅读 1046 评论 0

摘要:本文主要向大家介绍了JAVA语言-Xml,DOM4J 实现对XML文档的增、删、改、查的操作,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言-Xml,DOM4J 实现对XML文档的增、删、改、查的操作,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

虽说是介绍基本操作,但是对XML的使用最多的就是增删改查,本文内容也是实际工作中常用到的方法。

下面是待解析的Xml文件内容: 

<!--?xml version="1.0" encoding="utf-8"?-->

 

<students xmlns="https://www.itcast.cn/xml" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="https://www.itcast.cn/xml students.xsd">

    <student number="ITCAST_1001">

      <name>zhangSan</name>

      23</age>

      <sex>male</sex>

    </student>

</students>

   

接着介绍如何使用dom4j实现对XML的操作:

public class Demo3 {

 

    @Test

    public void method1() throws Exception {

        // 创建解析器

        SAXReader reader = new SAXReader();//这个是用来读取文件内容的

        Document doc = reader.read(new File("students.xml")); //指定要读取的文件

        //System.out.println(doc.asXML()); //打印出文件

    }

     

    //实现对XML文件的复制

    @Test

    public void method2() throws Exception {

        // 得到Document

        SAXReader reader = new SAXReader();

        Document doc = reader.read(new File("students.xml"));

         

        // 保存Document,指定将写入的目的文件(复制功能)

        XMLWriter writer = new XMLWriter(new FileOutputStream("students_copy.xml"));

        writer.write(doc); //开始写入

    }

     

    //遍历Document

    @Test

    public void method3() throws Exception {

        // 要遍历文档,首先要得到Document对象

        SAXReader reader = new SAXReader();

        Document doc = reader.read(new File("students.xml"));

 

        //获取根元素

        Element root = doc.getRootElement();

        //获取根元素中所有student元素

        List<element> stuEleList = root.elements("student");

        // 循环遍历所有学生元素

        for(Element stuEle : stuEleList) {

            //获取学生元素的number

            String number = stuEle.attributeValue("number");

            //获取学生元素名为name的子元素的文本内容

            String name = stuEle.elementText("name");

            //获取学生元素名为age的子元素的文本内容

            String age = stuEle.elementText("age");

            //获取学生元素名为sex的子元素的文本内容

            String sex = stuEle.elementText("sex");    

            System.out.println(number + ", " + name + ", " + age + ", " + sex);

        }

    }

     

    //添加元素

    @Test

    public void method4() throws Exception {

        // 得到Document

        SAXReader reader = new SAXReader();

        Document doc = reader.read(new File("src/students.xml"));

 

        //获取root元素

        Element root = doc.getRootElement();

        Element stuEle = root.addElement("student"); //添加了student元素

        // 给stuEle添加属性,名为number,值为1003

        stuEle.addAttribute("number", "1003");

        // 分别为stuEle添加名为name、age、sex的子元素,并为子元素设置文本内容

        stuEle.addElement("name").setText("wangWu");

        stuEle.addElement("age").setText("18");

        stuEle.addElement("sex").setText("male");

         

        // 设置保存的格式化器  1. \t,使用什么来完成缩进 2. true, 是否要添加换行

        OutputFormat format = new OutputFormat("\t", true);

        format.setTrimText(true); //去掉空白

        // 在创建Writer时,指定格式化器

        XMLWriter writer = new XMLWriter(new FileOutputStream("src/students_copy.xml"), format);

        writer.write(doc);

    }

     

    //修改元素

    @Test

    public void method5() throws Exception {

 

        // 得到Document

        SAXReader reader = new SAXReader();

        Document doc = reader.read(new File("src/students_copy.xml"));

 

        //使用XPath找到符合条件的元素

        // 查询student元素,条件是number属性的值为1003

        Element stuEle = (Element) doc.selectSingleNode("//student[@number='ITCAST_1003']");

        //修改stuEle的age子元素内容为81

        stuEle.element("age").setText("81");

        //修改stuEle的sex子元素的内容为female

        stuEle.element("sex").setText("female");

 

    }

     

    //删除元素

    @Test

    public void method6() throws Exception {

 

        // 得到Document

        SAXReader reader = new SAXReader();

        Document doc = reader.read(new File("src/students_copy.xml"));

         

        // 查找student元素,条件是name子元素的文本内容为wangWu

        Element stuEle = (Element) doc.selectSingleNode("//student[name='wangWu']");

         

        // 2. 获取父元素,使用父元素删除指定子元素

        stuEle.getParent().remove(stuEle);

    }

}</element>

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程