您能否在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文档所需的所有数据。