我想从我的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);