Xml XPATH:谁是在比赛中得分最多的球员?
我有一个XML,我需要一个在xpath比赛中得分最多的球员Xml XPATH:谁是在比赛中得分最多的球员?,xml,xpath,Xml,Xpath,我有一个XML,我需要一个在xpath比赛中得分最多的球员 伊涅斯塔 苏亚雷斯 梅西 罗纳尔多 秃鹰 包 /match/summary/team/scorecard/name[ 不(@points
伊涅斯塔
苏亚雷斯
梅西
罗纳尔多
秃鹰
包
/match/summary/team/scorecard/name[
不(@points
意思是:找到一个球员,这样就没有比他更高的分数了
测试
xmllint -xpath '/match/summary/team/scorecard/name[not(@points < /match/summary/team/scorecard/name/@points)]/text()' ~/file.xml
xmllint-xpath'/match/summary/team/scorecard/name[不(@points
/match/summary/team/scorecard/name[
不(@points
意思是:找到一个球员,这样就没有比他更高的分数了
测试
xmllint -xpath '/match/summary/team/scorecard/name[not(@points < /match/summary/team/scorecard/name/@points)]/text()' ~/file.xml
xmllint-xpath'/match/summary/team/scorecard/name[不(@points
@choroba的回答很好。XPath 2.0解决方案:
//name[@points=max(//name/@points)]/text()
输出:梅西
编辑:删除不同的值。谢谢@Michael Kay。@choroba的回答很好。XPath 2.0解决方案:
//name[@points=max(//name/@points)]/text()
输出:梅西
编辑:删除不同的值。Thx给@Michael Kay。如果你碰巧有萨克森(PE或更高)那么
应该是最快的解决方案。如果您碰巧有Saxon(PE或更高),那么
应该是最快的解决方案。
max(distinct-values(X))
与max(X)
相同,我非常怀疑对distinct-values()
的冗余调用是否有助于提高性能。请注意。感谢您的输入。max(distinct-values(X))
与max(X)
相同,我非常怀疑对distinct-values()
的冗余调用是否有助于提高性能。请注意。感谢您的输入。除非您的XPath处理器有一个非常智能的优化器,否则这将具有二次性能。@dontknow:这正是这个XPath表达式返回的结果。你试过了吗?输出与您的期望有什么不同?除非您的XPath处理器有相当智能的优化器,否则这将具有二次性能。@dontknow:这正是此XPath表达式返回的结果。你试过了吗?输出与您的期望有什么不同?