/ / Die Generierung-ID scheint nicht in XSLT zu funktionieren - xml, transform, xslt

Scheint nicht, dass generate-id in XSLT funktioniert - xml, transform, xslt

In einem for-each Anweisung, ich möchte IDs für jeden übereinstimmenden Knoten generieren.

Einige XML-Datei gegeben:

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

... und folgende Regel:

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

Ich bekomme immer so etwas:

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

Wie lautet die korrekte Syntax für den Aufruf dieser Funktion in XSLT? Danke im Voraus!

Antworten:

2 für die Antwort № 1

Benutzen:

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

Oder das Verbose:

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

Hinweis: Attributwertvorlagen gelten nur für literale Ergebniselemente und nur einige Attribute von XSLT-Anweisungen.