我有一些 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>
我很欣赏这有点复杂 - 有什么线索吗?请?