Java XML解析-删除第一个标签

时间:2019-07-04 11:11:14

标签: java xml parsing jdk1.7

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

这里是一个例子:

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

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

哪种方法是最好的方法?

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

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

谢谢。

1 个答案:

答案 0 :(得分:2)

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