请您在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>
答案 0 :(得分:0)
在com.vo.ShapeEventsVO的每个END ELEMENT事件上编写一个简单的SAX文档处理程序,查看xnuy,如果它适合,将ShapeEventsVO写入新文档。
您需要仅跟踪最新的mty,mtd和xnuy,以获得生成新的xnuy == 1文档所需的所有数据。