0

で ref 属性値を指定する必要がありますxf:select1supportedProperties次の方法で実行できるインスタンスに存在する場合にのみ、プロパティの名前を選択する必要があります。

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

ただし、supportedProperties大文字の名前を含めることができるという問題があります。インスタンスを変更できないと仮定すると、大文字と小文字を区別して比較できる方法はありますか?

次のように XPath 関数を使用しようとしましたが、lower-case()機能しませんでした:

<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 に答える