开发者

How to get equivalent of max() on MSXML6?

开发者 https://www.devze.com 2022-12-16 04:38 出处:网络
Evidently MSXML6 doesn\'t support XSLT 2.0, at least not the max() function. I need to find out the node that contains the highest value among its siblings. They are in arbitrary order.

Evidently MSXML6 doesn't support XSLT 2.0, at least not the max() function. I need to find out the node that contains the highest value among its siblings. They are in arbitrary order.

I want the order to remain identical so adding order-by and checking [0] is out of question.

I want to do this wit开发者_StackOverflow中文版h a single XPath statement. I don't want to call templates or involve any more complex logic than that. I'm sure there is a horrifying MS Scripting Extensions embedded somewhere. Eww.

I thought of:

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

But it didn't work as I expected (returns the first node always). Any other nifty XPath magic can you think of there?


Try

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

That is, you want the elem1 for which it is not the case that another elem1 has a greater @value.

Inspiration from this handy page

0

精彩评论

暂无评论...
验证码 换一张
取 消