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