• 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 }
  • 相关阅读:
    机器学习---聚类算法
    机器学习解决问题的框架
    17个机器学习的常用算法!
    机器学习---理论篇
    golang 调用cmd执行EXE
    队列(自定义列表实现自定义队列)
    栈Stack(使用自定义链表实现自定义栈)
    链表( 自定义链表)
    队列(动态数组实现自定义队列)
    栈Stack(动态数组实现自定义栈)
  • 原文地址:https://www.cnblogs.com/tongxuping/p/6837806.html
Copyright © 2020-2023  润新知