4

属性に対してコマンドを使用することは可能ですか?属性名を知らなくてもこれを実行できるようにしたいと思います。簡単な(ひどい)例を次に示します。

<candy hard="true" soft="false" stripes="true" solid="false">

私の頭の中では(これは機能しません)、次のようになります。

<xsl:for-each select="candy/@[@='true']">

名前を知らずに属性を実行する方法はありますか、それとも、調べている各属性を記述する必要がありますか?

編集

これは、value='true'である属性名から変数を作成しようとしている私の例です。

<xsl:for-each select="candy/@*[. = 'true']">
<xsl:attribute name="candytype"> 
   <xsl:value-of select="name()"/> 
</xsl:attribute>
<xsl:text> </xsl:text>
<xsl:for-each>
4

2 に答える 2

8

OPのコメント:

value ='true'の各属性名(valueではない)を返すことはできますか?

<xsl:for-each select="candy/@*[. = 'true']">
   <xsl:value-of select="name()"/>
   <xsl:text> </xsl:text>
<xsl:for-each>

XSLT 2.0では、このXPath(2.0)式を評価するだけです

candy/@*[. = 'true']/concat(name(.), ' ')
于 2012-08-02T03:30:41.000 に答える
1

あなたが欲しいのは

<xsl:for-each select="candy/@*">
于 2012-08-02T01:06:28.323 に答える