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

标签 java xml parsing jdk1.7

我想从 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/

相关文章:

php - 使用 PHP Simple HTML Dom 解析器遍历表行直到已知元素

xml - 将 Flash (AS3) 数据保存到 XML

javascript - 在 jQuery 中测试字符串是否为 XML 文档

ruby - 如何使用 mechanize (ruby gem) 解析这个 html 页面? *小修正*

java - 如何查找哈希码有效性?

java - 使用 mockito 进行单元测试(部分模拟)

java - 没有使用 RequestDispatcher 获取 Javascript、css 文件

java - 从 WSDL 开发 Web 服务客户端时出现异常

c - 为什么打印语句之间有间隙?

Java输入解析与分隔符| (管道)