gpt4 book ai didi

xslt - 使用 XSL 按顺序查找值

转载 作者:行者123 更新时间:2023-12-04 06:52:52 29 4
gpt4 key购买 nike

我想检查一个值是否存在于定义为的序列中

<xsl:variable name="some_seq" select="/root/word[@optional='no']/text()"/>

过去,我在 Priscilla Walmsleys 上取得了成功 function .为清楚起见,我在此处将其复制如下:
<xsl:function name="functx:is-value-in-sequence" as="xs:boolean">
<xsl:param name="value" as="xs:anyAtomicType?"/>
<xsl:param name="seq" as="xs:anyAtomicType*"/>
<xsl:sequence select="$value=$seq"/>
</xsl:function>

但是,这次我需要进行不区分大小写的比较,因此我尝试将 $value 都包装起来。和 $seqlower-case() .显然,这没有多大帮助,如 $seq是一个序列和 lower-case()只需要字符串。

问题:1) 构造小写字符串序列,或 2) 进行类似于 $value=$seq 的不区分大小写比较的最佳方法是什么?以上?蒂亚!

最佳答案

Question: what is the best way to either 1) construct a sequence of lower-case strings



很少有人意识到您可以使用函数作为 XPATH 2.0 表达式中的最后一个定位步骤。

您可以创建一个序列 lower-case()带有此表达式的字符串值:
/root/word[@optional='no']/text()/lower-case(.)

or 2) make a case-insensitive comparison analogous to $value=$seq above?



使用该策略,您可以定义一个自定义函数来比较 lower-case() $value 的值和 $seq 中的每个字符串值:
<xsl:function name="functx:is-value-in-sequence" as="xs:boolean">
<xsl:param name="value" as="xs:anyAtomicType?"/>
<xsl:param name="seq" as="xs:anyAtomicType*"/>
<xsl:sequence select="some $word in $seq/lower-case(.)
satisfies ($word = $value/lower-case(.))"/>
</xsl:function>

关于xslt - 使用 XSL 按顺序查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2866447/

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