【发布时间】:2015-06-11 09:21:25
【问题描述】:
我的 xml 结构是这样的:
<page height="777" width="777">
<block r="777" l="778" blockType="Text">
<region/>
<separator/>
</block>
<block r="777" l="790" blockType="Text">
<region/>
<separator/>
</block>
<block r="777" l="688" blockType="Text">
<region/>
<text/>
</block>
</page>
我想要选择具有最小“l”值的块节点,即“688”
我知道 XPath 2.0 中有一个 min() 函数,但我使用的是 Xpath1.0。
我试过了
//XPathExpression pattern2TextExpr =
xPath.compile("//page/block[not(preceding-sibling::block/@l < = @l) and not(following-sibling::block/@l >@l)]/@l");
How can I use XPath to find the minimum value of an attribute in a set of elements?
但这给了我多个节点列表。如果它是最小的,它应该只有一个节点。 任何其他可能和有效的解决方案?请建议。谢谢
【问题讨论】:
-
请发布格式良好的 XML 示例,人们可以使用它来测试他们的 xpath。您的 xpath 也不完全对应于 XML 示例(xpath 有
par、line等,但这些元素都没有显示在 XML 中):stackoverflow.com/help/mcve -
我已经编辑了您的 XML 示例以使其格式正确,如果您认为有必要演示问题,请随时对其进行进一步调整(只需保持格式正确)。