gpt4 book ai didi

xml - 如何基于xslt中以“pro_”开头的属性值选择max xml属性?

转载 作者:行者123 更新时间:2023-12-03 17:32:59 25 4
gpt4 key购买 nike

我对获取以指定字符串开头的最大值有一个怪异的要求。下面是我的示例源代码,如我们所见,book元素具有一个名为id的属性,如我们所见,id属性的某些值以“ pro_”开头,例如pro_60,pro_55,而其他属性值只是纯数字,例如70,40。

所以我的问题是如何获取以pro_开头的属性值,该数字为最大数。在此示例中,以pro_开头的最大数为65,因此预期结果为pro_65,我可以在中执行此操作代码,但我想知道我们是否可以仅使用来完成?任何帮助都非常有用!

XPath版本是1.0。

<?xml version="1.0" encoding="UTF-8"?>
<datas>
<books>
<book id="pro_60">Java</book>
<book id="pro_55">Golang</book>
<book id="pro_40">PHP</book>
<book id="pro_65">C++</book>
<book id="pro_55">Python</book>
<book id="70">Javascript</book>
<book id="40">HTML5</book>
</books>
</datas>

最佳答案

简短的XPath 2.0表达式:

max(/*/*/*/@id[starts-with(.,'pro_')]/number(substring(.,5)))


这只是计算最大值。

要选择具有 id属性且具有该最大值的所有元素,请使用:

(/*/*/*[@id = concat('pro_', string(max(/*/*/*/@id[starts-with(.,'pro_')]/number(substring(.,5)))))]


对于XPath 1.0,无法使用单个XPath 1.0表达式进行计算。

关于xml - 如何基于xslt中以“pro_”开头的属性值选择max xml属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31316148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com