首页 > 解决方案 > Java XML Parse - 删除第一个标签

问题描述

我想从我的 XML 字符串中删除一些标签。这听起来很简单,我敢肯定,但我在删除主标签并将子标签保留在里面时遇到了问题。

这是一个例子:

<Tag1 version = "">
    <SubTag1>
    </SubTag1>
    <SubTag2>
    </SubTag2>
</Tag1>

我想只保留“SubTag2”和里面的所有东西。

解决这个问题的最佳方法是什么?

我尝试使用 REGEX 删除 SubTag1,但在这里我发现这在 XML 中从来都不是一个好的解决方案:

result = result.replaceAll("<SubTag1>[\\s\\S]*?</SubTag1>","");

先感谢您。

标签: javaxmlparsingjdk1.7

解决方案


您可以使用 JSoup ( https://jsoup.org/ ) 或其他库来解析您的字符串。然后您可以访问 DOM 树并仅提取具有特定标签的部分。

它看起来像这样:

String xml = "<Tag1 version = \"\"><SubTag1></SubTag1><SubTag2></SubTag2></Tag1>";
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
Elements subTag2 = doc.getElementsByTag("SubTag2");

如果只有一个带有标签“SubTag2”的元素,您可以像这样访问它:

subTag2.get(0);

推荐阅读