zoukankan      html  css  js  c++  java
  • java-web-dom4j解析XML-递归方式

    <?xml version="1.0" encoding="UTF-8"?>
    <书架>
       

      <书 出版日期="2013-10-25" 出版社="人民出版社" 编号="b1">
           <作者>曾哥</作者>
          <作者>东方不败</作者>
          <售价>66.8</售价>
          <简介>欲练此功,不必自宫!</简介>
          <书名>
           <bookmark>辟邪剑谱</bookmark>
          </书名>
          <书名>葵花宝典</书名>

       </书>
      

       <书 出版社="清华出版社" 编号="b2">
          <书名 ID="b1" value="hahaha">九阴真经</书名>
          <作者>独孤求败</作者>
          <售价>88.9</售价>
          <简介>武功狠!!!</简介>
       </书>
    </书架>

     

    用递归将想找的标签名中的文本值找到:

    package myTestDom4j;

    import java.util.List;

    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;

    public class MyDom4jZSGC {
         

       public static void main(String[] args) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read("src/main/resources/book.xml");
        Element rootElement = document.getRootElement(); //拿到跟节点<书架>
        List<Element> elementList = rootElement.elements(); //<书架>的两个儿子

         testSelect(elementList);

       testAdd();

      }

       

      private static void testSelect(List<Element> elementList4) throws DocumentException {

        int nums = elementList4.size();
        for (int i = 0; i < nums; i++) {
           Element elementEvery = elementList4.get(i);     //<书架>的第一个儿子
           List<Element> elementEverySun = elementEvery.elements();//<书架>的两个儿子的后背所有节点
       
           if (elementEverySun.size() == 0) {
              if (elementEvery.getName().equals("bookmark")) {
               System.out.println(elementEvery.getText());
              }
           } else {
               testSelect(elementEverySun);
           }
         }

        }

      private static void testAdd() throws DocumentException, IOException {
            SAXReader reader = new SAXReader();
            Document document = reader.read("src/main/resources/book.xml");
            document.elementByID("zuozhe").addAttribute("name", "yinlixin");
            document.elementByID("zuozhe").setText("尹立新武功天下第一——————");
            //回写回XML

         XMLWriter writer = new XMLWriter(new FileWriter("src/main/resources/book.xml"));
               writer.write( document );
             writer.close();
           }


     }

     

     

     

    spring集成mongodb
  • 相关阅读:
    array_map()与array_shift()搭配使用 PK array_column()函数
    Educational Codeforces Round 8 D. Magic Numbers
    hdu 1171 Big Event in HDU
    hdu 2844 poj 1742 Coins
    hdu 3591 The trouble of Xiaoqian
    hdu 2079 选课时间
    hdu 2191 珍惜现在,感恩生活 多重背包入门题
    hdu 5429 Geometric Progression 高精度浮点数(java版本)
    【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
    hdu::1002 A + B Problem II
  • 原文地址:https://www.cnblogs.com/yinlixin/p/4606061.html
Copyright © 2011-2022 走看看