2011-03-11 9 views
2

for-eachステートメントでは、一致するすべてのノードのIDを生成します。正しい構文は何XSLTでgenerate-idが動作しないようです

<event id="id/generate-id(test)"/> 
<event id="id/generate-id(test)"/> 
<event id="id/generate-id(test)"/> 
... 

:私はいつもこのような何かを得る

<xsl:for-each select="event"> 
    <xsl:element name="event"> 
    <xsl:attribute name="id">id/{generate-id(test)}</xsl:attribute> 
    </xsl:element> 
</xsl:for-each> 

<event attr1="qwertz"> 
    <test>Test</test> 
</event> 
<event attr1="asdfg"> 
    <test>Test</test> 
</event> 

...と、以下のルール:

は、いくつかのXMLファイルを考えますXSLTでこの関数を呼び出すためのものですか?前もって感謝します!

答えて

2

用途:

<event id="id/{generate-id(test)}"/> 

または冗長:

<xsl:element name="event"> 
    <xsl:attribute name="id"> 
     <xsl:text>id/<xsl:text> 
     <xsl:value-of select="generate-id(test)"/> 
    </xsl:attribute> 
</xsl:element> 

:属性値テンプレートはリテラル結果要素とXSLT命令の唯一のいくつかの属性に対してのみです。

+0

乾杯、完璧に動作します! – slhck

+0

@slhck:それは役に立ちましたのでうれしいです。 –

関連する問題