0

我必须在xf:select1. 只有当它们存在于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)">
4

1 回答 1

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">
于 2016-09-30T17:04:47.857 回答