Dom4j 对XML增删改查

  public void add() throws Exception
   {
       //创建解析器
       SAXReader reader = new SAXReader();
       //获取XML文档
       Document  document=reader.read("book.xml");
       //获取XML根节点
       Element rootElement=  document.getRootElement();
       
       //新增节点
       Element  newElement=DocumentHelper.createElement("特价");
       newElement.addText("8.8元");
       
       //节点加入到XML文档内存中
       rootElement.element("书").add(newElement);
       //FileWriter字符写入,底层默认是gb2312导致utf-8乱码
      //FileWriter writer = new FileWriter("book.xml");
      //document.write(writer);
     // writer.close();
       
       //字节流写入
//       Writer writer = new OutputStreamWriter(new FileOutputStream("book.xml"),"utf-8");
//       document.write(writer);
//       writer.close();
       
       
       OutputFormat format =OutputFormat.createCompactFormat();
       format.setEncoding("utf-8");
       XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
       writer.write(document);
       writer.close();
       
       
       
   }
   @Test
   public void find() throws Exception
   {
       //创建解析器
       SAXReader reader = new SAXReader();
       //获取XML文档
       Document  document=reader.read("book.xml");
       //获取XML根节点
       Element rootElement=  document.getRootElement();
       //获取第一次出现书/书名的标签
       String bookNmae=rootElement.element("书").element("书名").getText();
       System.out.println(bookNmae);
       //获取XML出现标签的
       List<Element> list=rootElement.elements("书");
       for(Element element : list)
       {
           String book1=element.element("书名").getText();
           System.out.println(book1);
       }
   }
   
   
   @Test
   public void update() throws Exception
   {
     //创建解析器
       SAXReader reader = new SAXReader();
       //获取XML文档
       Document  document=reader.read("book.xml");
       //获取XML根节点
       Element rootElement=  document.getRootElement();
       
       rootElement.element("书").element("书名").setText("未知");
       
       OutputFormat format =OutputFormat.createCompactFormat();
       format.setEncoding("utf-8");
       XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
       writer.write(document);
       writer.close();
   }
   
   @Test
   public void delete() throws Exception
   {
       //创建解析器
       SAXReader reader = new SAXReader();
       //获取XML文档
       Document  document=reader.read("book.xml");
       //获取XML根节点
       Element rootElement=  document.getRootElement();
       Element e=rootElement.element("书").element("特价");
       e.getParent().remove(e);
       
       OutputFormat format =OutputFormat.createCompactFormat();
       format.setEncoding("utf-8");
       XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
       writer.write(document);
       writer.close();
   }
   
   @Test
   public void addAttr()throws Exception
   {
     //创建解析器
       SAXReader reader = new SAXReader();
       //获取XML文档
       Document  document=reader.read("book.xml");
       //获取XML根节点
       Element rootElement=  document.getRootElement();
       
       rootElement.addAttribute("测试", "答案");
       
       OutputFormat format =OutputFormat.createCompactFormat();
       format.setEncoding("utf-8");
       XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
       writer.write(document);
       writer.close();
   }
   
   @Test
   public void findXpath()throws Exception
   {
       //创建解析器
       SAXReader reader = new SAXReader();
       //获取XML文档
       Document  document=reader.read("book.xml");
       //获取XML根节点
       Element rootElement=  document.getRootElement();
       
       List<Element> list=rootElement.selectNodes("/书架/书/书名");
       System.out.println(list);
   }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值