作成しなかったXSLTがいくつかありますが、それを維持する必要があります。ある時点で、generate-id()を使用して空のdivを作成し、それをさらにスクリプトで操作します。問題は、divが別のdiv内にあり(これは少し無意味だと思っていましたが、とにかく受け入れられます)、両方に同じIDが与えられていることです!これをXalanで試した後、JREトランスフォーマーでもう一度試したところ、同じ結果になりました。次に、Eclipse / Xalan XSLTデバッガーを使用しようとしましたが、ステップオーバーすると、すべて正しく機能します...
XSLTは次のようになります。
<xsl:template match="listed">
<xsl:variable name="showwhat">
<xsl:call-template name="IdentifyAudience"/>
</xsl:variable>
<xsl:if test="string-length($showwhat) > 0">
<div>
<xsl:attribute name="id">
<xsl:value-of select="generate-id()"/>
</xsl:attribute>
<xsl:call-template name="Blah"/>
<xsl:apply-templates/>
</div>
</xsl:if>
</xsl:template>
そして、XMLフラグメントは次のようになります。
<listed id='ID39AF705AE17A000F337B000A' mode='html'>
<ul>
<li>Blah blah</li>
</ul>
</listed>
<listed id='ID39AF715892AE000F337B002B' mode='html'>
<ul>
<li>Blech blech.</li>
</ul>
</listed>
これは少し複雑だと思います-手がかりはありますか?お願いします?