我想从 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);
关于Java XML 解析 - 删除第一个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886698/