XML深入理解之DOM4J实现对XML文件的改动

来源:互联网 发布:真柏树桩淘宝价格 编辑:程序博客网 时间:2024/06/05 07:23

1.使用dom4j的api来生成以下的xml文件

<Students><Student id="1">    <name>张三</name>    <gender></gender>    <grade>软件14</grade>    <address>长春</address></Student><Student id="2">    <name>李四</name>    <gender></gender>    <grade>软件13</grade>    <address>北京</address></Student></Students>

2.修改id为2的学生的姓名,改为“小红”
3.删除id为2的学生


1.生成指定xml文档

@Test    public void test1() throws Exception{        //1.内存创建xml文档        Document doc = DocumentHelper.createDocument();        //2.写入内容        Element rootElem = doc.addElement("Students");        //2.1 增加标签        Element studentElem1 = rootElem.addElement("Student");        //2.2 增加属性        studentElem1.addAttribute("id", "1");        //2.3 增加标签,同时设置文本        studentElem1.addElement("name").setText("张三");        studentElem1.addElement("gender").setText("男");        studentElem1.addElement("grade").setText("软件14");        studentElem1.addElement("address").setText("长春");        //2.1 增加标签        Element studentElem2 = rootElem.addElement("Student");        //2.2 增加属性        studentElem2.addAttribute("id", "2");        //2.3 增加标签,同时设置文本        studentElem2.addElement("name").setText("李四");        studentElem2.addElement("gender").setText("女");        studentElem2.addElement("grade").setText("软件13");        studentElem2.addElement("address").setText("北京");        //3.内容写出到xml文件        //3.1 输出位置        FileOutputStream out = new FileOutputStream("student.xml");        //3.2 指定格式        OutputFormat format = OutputFormat.createPrettyPrint();        // 设置编码        format.setEncoding("utf-8");        XMLWriter writer = new XMLWriter(out,format);        //3.3 写出内容        writer.write(doc);        //3.4关闭资源        writer.close();    }

2.修改id为2的学生的姓名,改为“小红”

    @Test    public void test2() throws Exception{        //1.查询到id为2的学生        Document doc = new SAXReader().read(new File("student.xml"));        //1.1 找到所有的Student标签        Iterator<Element> it = doc.getRootElement().elementIterator("Student");        while(it.hasNext()){            Element stuElem = it.next();            //1.2 查询id为id的学生标签            if(stuElem.attributeValue("id").equals("2")){                stuElem.element("name").setText("小红");                break;            }        }        //3.1 输出位置        FileOutputStream out = new FileOutputStream("student.xml");        //3.2 指定格式        OutputFormat format = OutputFormat.createPrettyPrint();        //OutputFormat format = OutputFormat.createCompactFormat();         //紧凑的格式.去除空格换行.项目上线的时候        // 设置编码        format.setEncoding("utf-8");        XMLWriter writer = new XMLWriter(out,format);        //3.3 写出内容        writer.write(doc);        //3.4关闭资源        writer.close();    }

3.删除id为2的学生

@Test    public void test3() throws Exception{        //1.查询到id为2的学生        Document doc = new SAXReader().read(new File("student.xml"));        //1.1 找到所有的Student标签        Iterator<Element> it = doc.getRootElement().elementIterator("Student");        while(it.hasNext()){            Element stuElem = it.next();            //1.2 查询id为id的学生标签            if(stuElem.attributeValue("id").equals("2")){                //1.3 删除该学生标签                stuElem.detach();                break;            }        }        //3.1 输出位置        FileOutputStream out = new FileOutputStream("e:/student.xml");        //3.2 指定格式        OutputFormat format = OutputFormat.createPrettyPrint();        // 设置编码        format.setEncoding("utf-8");        XMLWriter writer = new XMLWriter(out,format);        //3.3 写出内容        writer.write(doc);        //3.4关闭资源        writer.close();    }}
0 0
原创粉丝点击