1
我有一些XSLT,我没有写,但我必须保持它。在某些时候,它使用generate-id()来创建一个空的div,然后由脚本继续操作。问题在于div是在另一个div内的(我认为这有点无意义,但无论如何都可以接受),并且两个都被赋予相同的ID!我用Xalan尝试过,然后再用JRE变压器得到相同的结果。然后,我尝试使用Eclipse/Xalan的XSLT调试器,当我跨过的东西,这一切工作正常...为什么generate-id()函数返回两次相同的id?
的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>
我很欣赏这有点复杂 - 任何线索?请?
你的说法,你得到不正确的结果不能被reproed除非你提供一个完整的XML文档(尽可能小)和一个完整的XSLT转换(尽可能小)。请提供这些,或者你的问题不是真的可以回答的问题。 – 2010-12-03 17:23:05
您发布的XML片段是什么?如果是这样的结果,它并没有用那个XSLT代码生成,因为那个用'id`生成`div`,但结果中没有`div'。 – khachik 2010-12-03 17:27:39