W for-each
instrukcja, chcę wygenerować identyfikatory dla każdego dopasowanego węzła.
Biorąc pod uwagę jakiś plik XML:
<event attr1="qwertz">
<test>Test</test>
</event>
<event attr1="asdfg">
<test>Test</test>
</event>
... i następująca zasada:
<xsl:for-each select="event">
<xsl:element name="event">
<xsl:attribute name="id">id/{generate-id(test)}</xsl:attribute>
</xsl:element>
</xsl:for-each>
Zawsze dostaję coś takiego:
<event id="id/generate-id(test)"/>
<event id="id/generate-id(test)"/>
<event id="id/generate-id(test)"/>
...
Jaka jest poprawna składnia do wywoływania tej funkcji w XSLT? Z góry dziękuję!
Odpowiedzi:
2 dla odpowiedzi № 1Posługiwać się:
<event id="id/{generate-id(test)}"/>
Lub pełny:
<xsl:element name="event">
<xsl:attribute name="id">
<xsl:text>id/<xsl:text>
<xsl:value-of select="generate-id(test)"/>
</xsl:attribute>
</xsl:element>
Uwaga: Szablony wartości atrybutów dotyczą tylko literalnych elementów wyniku i tylko niektórych atrybutów instrukcji XSLT.