1

タグと呼ばれる変数を定義しました。これは、名前がいくつかの値の 1 つである要素のノード セットを選択します。

<xsl:variable name="tags" select="//xs:element[@name='Subscription' or @name='Account' or @name='Product'  or @name='ProductRatePlan' or @name='ProductRatePlanCharge' or @name='Usage']"/>

変数を次のように定義したいと思います。

<xsl:variable name="tagNames" select="'Subscription','Account','Product','ProductRatePlan','ProductRatePlanCharge','Usage'/>

セット $tagNames に名前が含まれるすべてのノードを選択するように最初の式を書き直すにはどうすればよいでしょうか? 本質的に、SQL セット メンバーシップに類似した操作を探しています。

SELECT * FROM tags WHERE name in ('Subscription', 'Account', 'Product'....)
4

2 に答える 2

1

これを行う1つの方法

//xs:element
  [contains('|Subscription|Account|Product|ProductRatePlan|ProductRatePlanCharge|Usage|',
            concat('|', @name, '|'))]

したがって、変数またはパラメーターを使用できます

<xsl:variable name="vTags"
 select="'|Subscription|Account|Product|ProductRatePlan|ProductRatePlanCharge|Usage|'"/>

メインの XPath 式は次のようになります

//xs:element[contains($vTags, concat('|', @name, '|'))]
于 2013-04-09T04:02:47.890 に答える