java - Java XML Parse - 删除第一个标签
问题描述
我想从我的 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);
推荐阅读
- python - Pyspark 读取 REST API
- unity3d - 如何在代码 c#(按钮、面板等)中查找 UI
- powerbi - Power BI 仅计算重复 ID 的最后一个值的总和
- c - C中的内存对齐:返回地址中的偏移量是如何考虑的?
- python - 类型错误:__init__() 缺少 1 个必需的位置参数:'msg' 每次我尝试在 macbook 上下载 anaconda3
- ruby-on-rails - 如何绕过带有 RSPEC 的 Rails 控制器中的 recaptcha 验证?
- r - 如何从 x、y、z 使用光线着色器包进行 3D 表面处理
- java - 如何更改 ArrayList 中对象的显示名称
- hibernate - 休眠。QuerySyntaxException:用户未映射,即使它是
- c# - 在数据注释中使用枚举