如何在MSXML6上获得等效的max()?

时间:2010-01-07 16:04:18

标签: xml xslt xpath msxml

显然MSXML6不支持XSLT 2.0,至少不支持max()功能。我需要找出其兄弟姐妹中包含最高值的节点。它们是任意顺序。

我希望订单保持一致,因此添加order-by并检查[0]是不可能的。

我想用一个XPath语句来做这件事。我不想调用模板或涉及比这更复杂的逻辑。我确信在某处嵌入了可怕的MS Scripting Extensions。 EWW。

我想到了:

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

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

1 个答案:

答案 0 :(得分:4)

尝试

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

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

来自this handy page

的灵感