根据标签名递归读取xml字符串中element

工具类:

java 复制代码
  /**
   * 根据标签名递归读取xml字符串中element
   * 例:
   * String xml =
   * "<req>\n" +
   * "<tag1></tag1>\n" +
   * "<tag2>\n" +
   * "  <tag4></tag4>\n" +
   * "</tag2>\n" +
   * "<tag3></tag3>\n" +
   * "</req>";
   * <p>
   * element(xml) => 获得 req element
   * element(xml, "tag1") => 获得 tag1 element
   * element(xml, "tag2", "tag4") => 获得 tag4 element
   *
   * @param xml
   * @param nodes
   * @return
   */
  public static Element element(String xml, String... nodes) {
    try {
      Document document = DocumentHelper.parseText(xml);
      Element element = document.getRootElement();
      for (String node : nodes) {
        element = element.element(node);
      }
      return element;
    } catch (DocumentException e) {
      e.printStackTrace();
    }

    return null;
  }

测试:

java 复制代码
public class Main {
    public static void main(String[] args) {
        String xmlString = "<books><category name='Fiction'><book id='1'>Harry Potter</book></category></books>";

        // 获取 books 元素
        Element booksElement = element(xmlString);
        System.out.println("Books: " + booksElement.asXML());

        // 获取 category 元素
        Element categoryElement = element(xmlString, "category");
        System.out.println("Category: " + categoryElement.asXML());

        // 获取 book 元素
        Element bookElement = element(xmlString, "category", "book");
        System.out.println("Book: " + bookElement.asXML());
    }

    // 之前的 element 函数
    public static Element element(String xml, String... nodes) {
        // ...
    }
}

输出:

java 复制代码
Books: <books><category name="Fiction"><book id="1">Harry Potter</book></category></books>
Category: <category name="Fiction"><book id="1">Harry Potter</book></category>
Book: <book id="1">Harry Potter</book>
相关推荐
laplace012310 小时前
Java八股—MySQL
java·mysql·oracle
zhangyao94033011 小时前
关于js导入Excel时,Excel的(年/月/日)日期是五位数字的问题。以及对Excel日期存在的错误的分析和处理。
开发语言·javascript·excel
熙客11 小时前
TiDB:分布式关系型数据库
java·数据库·分布式·tidb
骑驴看星星a11 小时前
【Three.js--manual script】4.光照
android·开发语言·javascript
你想考研啊12 小时前
linux安装jdk和tomcat和并自启动
java·linux·tomcat
星释12 小时前
Rust 练习册 :Leap与日期计算
开发语言·后端·rust
悟能不能悟14 小时前
java的java.sql.Date和java.util.Date的区别,应该怎么使用
java·开发语言
循环过三天14 小时前
3.4、Python-集合
开发语言·笔记·python·学习·算法
高山上有一只小老虎15 小时前
java 正则表达式大全
java·正则表达式
_院长大人_16 小时前
设计模式-工厂模式
java·开发语言·设计模式