如何在xforms中比较区分大小写的字符串:select1 ref属性?

时间:2016-09-30 05:58:42

标签: xpath orbeon xforms xpath-2.0 xsltforms

我必须在xf:select1中提供ref属性值。我只需要在supportedProperties实例中出现属性名称就可以选择属性名称,这可以通过以下方式完成:

<xf:select1
    ref="
        instance('properties')/property[
            name = instance('supportedProperties')/property/name
        ]/name">

然而,问题是supportedProperties可以包含大写字母的名称。假设我们无法更改实例,是否可以进行区分大小写的比较?

尝试使用lower-case() XPath函数,如下所示,但它没有工作:

<xf:select1
    ref="
        instance('properties')/property[
            name = instance('supportedProperties')/property/name
        ]/lower-case(name)">

1 个答案:

答案 0 :(得分:0)

假设您使用的是XPath 2,您可以写:

<xf:select1
    ref="
        instance('properties')/property[
            name = instance('supportedProperties')/property/name/lower-case(.)
        ]/name">

这样做是lower-case(.)函数适用于instance('supportedProperties')/property/name返回的序列中的所有元素。

您也可以写下来:

<xf:select1
    ref="
        instance('properties')/property[
            name = (
                for $name in instance('supportedProperties')/property/name
                return lower-case($name)
            )
        ]/name">