显然,MSXML6不支持XSLT 2.0,至少不支持max()函数。我需要找出节点中包含最高值的节点。它们以任意顺序排列。

我希望顺序保持不变,因此添加order-by并检查[0]毫无疑问。

我想用一个XPath语句来做到这一点。我不想调用模板或涉及任何比这更复杂的逻辑。我确信某个地方嵌入了令人恐惧的MS脚本扩展。真是的

我想到了:

elem1[count(../elem1[@value < current()/@value]) = 0]


但是它没有按我预期的那样工作(总是返回第一个节点)。您还能想到其他任何漂亮的XPath魔术吗?

最佳答案

尝试

elem1[not(../elem1/@value > @value)]


也就是说,您要的是elem1,而不是另一个elem1具有更大的@value的情况。

来自this handy page的启示

10-08 19:23