我有这样的 XML 文件:
<A>
<B>
<C>
<id>0</id>
</C>
</B>
<B>
<C>
<id>1</id>
</C>
</B>
</A>
当 C 具有特定 id 时,我想获得 B block 。例如,如果我想获取 id=1 的 block ,我想要这样的响应:
<B>
<C>
<id>1</id>
</C>
</B>
但我不知道如何才能得到我想要的部分。我尝试过:
Node result = (Node)xPath.evaluate("A/B/C[id = '1']", doc, XPathConstants.NODE);
但当我想要 B block 时,会返回一个 C block 。
并且:
Node result = (Node)xPath.evaluate("B[A/B/C[id = '1']]", doc, XPathConstants.NODE);
返回空。
我也阅读了官方文档,但没有找到任何内容:
https://msdn.microsoft.com/en-us/library/ms256471(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx
谢谢。
最佳答案
谓词只是意味着“仅在符合我在此谓词中放入的条件时才保留此元素”
很简单,
A/B[C/id = 1]
关于Java 如何使用xpath提取完整的XML block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45373906/