gpt4 book ai didi

java - 删除具有特定文本值的子节点的 XML 节点

转载 作者:行者123 更新时间:2023-12-01 05:55:39 24 4
gpt4 key购买 nike

您能否建议满足我的 Java 需求(如下)的最佳方法。我尝试过使用 XPath,但我必须重新创建整个 XML。我希望有一种简单的方法可以做到这一点。

我想删除 xnuy != 1 的节点

示例输入 XML:

<object-stream>
<com.vo.ShapeEventsVO>
<mtx>198.0</mtx>
<mty>79.0</mty>
<xnuy>1</xnuy>
</com.vo.ShapeEventsVO>
<com.vo.ShapeEventsVO>
<mtx>198.0</mtx>
<mty>79.0</mty>
<xnuy>1</xnuy>
</com.vo.ShapeEventsVO>
<com.vo.ShapeEventsVO>
<mtx>198.0</mtx>
<mty>79.0</mty>
<xnuy>2</xnuy>
</com.vo.ShapeEventsVO>

</object-stream>

输出 XML:

<object-stream>
<com.vo.ShapeEventsVO>
<mtx>198.0</mtx>
<mty>79.0</mty>
<xnuy>1</xnuy>
</com.vo.ShapeEventsVO>
<com.vo.ShapeEventsVO>
<mtx>198.0</mtx>
<mty>79.0</mty>
<xnuy>1</xnuy>
</com.vo.ShapeEventsVO>
</object-stream>

最佳答案

编写一个简单的 SAX 文档处理程序 - 在 com.vo.ShapeEventsVO 的每个 END ELEMENT 事件上,查看 xnuy,如果适合,则将该 ShapeEventsVO 写入新文档。

您只需跟踪最近的 mty、mtd 和 xnuy,即可获得生成新的 xnuy==1 文档所需的所有数据。

关于java - 删除具有特定文本值的子节点的 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3089622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com