我想从我的XML字符串中删除一些标签。听起来很简单,而且我敢肯定,但是在删除主标签和将子标签保留在内部时遇到了问题。

这是一个例子:

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


我只想保留“ SubTag2”及其内部的所有内容。

哪个是解决此问题的最佳方法?

我尝试使用REGEX删除SubTag1,但是在这里我发现这永远不是XML的好解决方案:

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


先感谢您。

最佳答案

您可以使用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);

10-08 01:40