1

アーティストのリストを持つインスタンスがあります

<xf:instance id="Artists" xmlns="">  
    <Artists>
        <Artist ID="6548">
            <FirstName>Elvis</FirstName>
            <LastName>Presley</LastName>
        </Artist>
        <Artist ID="7895">
            <FirstName>Duane</FirstName>
            <LastName>Eddy</LastName>
        </Artist>
    </Artists>
</xf:instance>    

そして、リストからアーティストを選択したいと思います。このコード:

<xf:select>
    <xf:label>Artists</xf:label>
    <xf:itemset nodeset="instance('Artists')/Artist">
        <xf:label ref="LastName" ></xf:label>
        <xf:value ref="@ID"></xf:value>
    </xf:itemset>
</xf:select>

"Presley" と "Eddy" のラベルが表示されますが、"Presley, Elvis" と "Eddy, Duane" を表示したいと思います。モデルを変更せずにこれを行うことはできますか? そこに表現を入れる方法があると思いますが、わかりません。

私は試した:

<xf:label ref="concat(LastName, ',', FirstName)" ></xf:label>

しかし、それだけでは何も表示されません。(BetterForm と eXist を使用しています)

4

2 に答える 2

1

これを試して:

<xf:label value="concat(LastName, ', ', FirstName)" />

このソリューションは実装固有のものである可能性があります。私は orbeon フォームでのみテストしました。コードとの唯一の違いは、要素のvalue属性が. では、単一ノードのバインドを指定しているため、機能しません。モデルにそのようなノードがない場合、失敗します。代わりに、XPath を使用して「計算された」ラベル値を作成できます。xf:label@refref="concat(LastName, ',', FirstName)"refvalue

于 2013-01-10T09:45:42.003 に答える
0

この構文はBetterForm+eXistで機能します。

<xf:label>
    <xf:output value="concat(LastName, ',', FirstName)" />
</xf:label>
于 2013-01-12T13:49:16.413 に答える