/ / Wydaje się, że nie można uzyskać id-generatora działającego w XSLT - xml, transform, xslt

Nie można uzyskać identyfikatora generującego działającego w XSLT - xml, transform, xslt

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 № 1

Posł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.