How to get equivalent of max() on MSXML6?

时间秒杀一切 提交于 2019-12-10 00:01:06

问题


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 with 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?


回答1:


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



来源:https://stackoverflow.com/questions/2021667/how-to-get-equivalent-of-max-on-msxml6

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!