开发者

Can't seem to get generate-id working in XSLT

开发者 https://www.devze.com 2023-02-16 10:27 出处:网络
In a for-each statement, I want to generate IDs for every matched node. Given some XML file: <event attr1=\"qwertz\">

In a for-each statement, I want to generate IDs for every matched node.

Given some XML file:

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

... and the following rule:

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

I always get something like this:

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

What is the corr开发者_如何学JAVAect syntax for calling this function in XSLT? Thanks in advance!


Use:

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

Or the 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>

Note: Attribute Value Templates are only for literal result elements and only some attributes of XSLT instructions.

0

精彩评论

暂无评论...
验证码 换一张
取 消