zoukankan      html  css  js  c++  java
  • dom4j解析xml配置文件

    通过dom4j来对xml配置文件的增删查改;

    利用@Test注解来对单个方法进行测试;

     1 import java.io.FileOutputStream;
     2 import java.io.OutputStreamWriter;
     3 import java.util.List;
     4 
     5 import org.dom4j.Document;
     6 import org.dom4j.Element;
     7 import org.dom4j.io.OutputFormat;
     8 import org.dom4j.io.SAXReader;
     9 import org.dom4j.io.XMLWriter;
    10 import org.junit.Test;
    11 
    12 public class Demo2 {
    13     String xmlPath = "book.xml";
    14     
    15     @Test
    16     //1.查询第一本书的书名,并输出到控制台
    17     public void foo() throws Exception{
    18         //创建解析器
    19         SAXReader sax = new SAXReader();
    20         
    21         //开始解析文档
    22         Document dom = sax.read(xmlPath);
    23         
    24         //根元素
    25         Element rootElement = dom.getRootElement();
    26         
    27         //跟元素的所有子元素
    28         List elements = rootElement.elements();
    29         
    30         //跟元素的下一个子元素
    31         Element element = rootElement.element("书");
    32         
    33         //element的下一个子元素
    34         Element element2 = element.element("书名");
    35         
    36         //element2元素的内容
    37         String text = element2.getText();
    38         
    39         System.out.println(text);
    40     }
    41     
    42     
    43     //2.给第一本书添加一个特价节点, 并修改第一本书的售价节点的内容为19.8元
    44     @Test
    45     public void add() throws Exception{
    46         //创建解析器
    47         SAXReader sax = new SAXReader();
    48         
    49         //开始解析文档
    50         Document dom = sax.read(xmlPath);
    51         
    52         //获取根元素
    53         Element rootElement = dom.getRootElement();
    54         
    55         //获取第一本书并添加特价节点和节点内容
    56         Element bookelem = rootElement.element("书");
    57         Element addelement = bookelem.addElement("特价");
    58         addelement.setText("9.8元");
    59         
    60         //写入xml文件,实时更新xml文件
    61         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(xmlPath),"utf-8");
    62         OutputFormat format = OutputFormat.createPrettyPrint();
    63         XMLWriter writer = new XMLWriter(out,format);
    64         //将java代码修改了的dom写到xml文件中
    65         writer.write(dom);
    66         writer.close();
    67     }
    68     
    69     
    70     //3.删除第二本书的作者节点
    71     @Test
    72     public void delete() throws Exception{
    73         //创建解析器
    74         SAXReader sax = new SAXReader();
    75         //解析文档
    76         Document dom = sax.read(xmlPath);
    77         //获取跟元素
    78         Element rootElement = dom.getRootElement();
    79         //获取根目录下的所有子元素
    80         List<Element> list = rootElement.elements("书");
    81         //获得list中的第二个元素
    82         Element author = list.get(1);
    83         Element auelement = author.element("作者");
    84         //移除list下的第二个元素
    85         author.remove(auelement);
    86         
    87         //写入xml文件,实时更新xml文件
    88         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(xmlPath),"utf-8");
    89         OutputFormat format = OutputFormat.createPrettyPrint();
    90         XMLWriter writer = new XMLWriter(out,format);
    91         //将java代码修改了的dom写到xml文件中
    92         writer.write(dom);
    93         writer.close();
    94         
    95     }
    96 }
  • 相关阅读:
    Struts2使用json中要注意的几点
    JS实现关闭当前子窗口,刷新父窗口
    oracle中rownum效率低的原因以及解决办法
    URL传中文参数引发的乱码问题
    oracle存储过程
    Map.keyset() 使用详解
    oracle跨库查询dblink的用法
    Java中getResourceAsStream的用法
    如何删除存在多个重复记录中的一个
    cocos2d里面如何实现mvc系列
  • 原文地址:https://www.cnblogs.com/tongxuping/p/6837806.html
Copyright © 2011-2022 走看看