我想排序显示在列表中的所有演员名称。必须有一些简单的东西我失踪了,但我无法弄清楚它是什么。XSLT排序元素不起作用
<xsl:key name="kName" match="actor/name" use="." />
<xsl:template match="/">
<xsl:element name="html">
<xsl:element name="head">
<xsl:element name="title">
<xsl:text>Actors list</xsl:text>
</xsl:element>
<xsl:element name="h2">Actors list</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:variable name="actorNames" select="/movies/movie/cast/actors/actor/name"/>
<xsl:apply-templates select="$actorNames[generate-id() = generate-id(key('kName', .)[1])]">
<xsl:sort select="./name"/>
</xsl:apply-templates>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="name">
<xsl:element name="a">
<xsl:attribute name="href">actor_details.php?movieID=<xsl:value-of select="../../../../@movieID"/>&actorID=<xsl:value-of select="../@actorID"/></xsl:attribute>
<xsl:value-of select="." />
</xsl:element>
<xsl:element name="br" />
</xsl:template>
谢谢你的回复,rene。但是,我将如何将它应用于我的特殊情况,因为我正在使用“apply-templates select =”$ actorNames [generate-id()= generate-id(key('kName',。)[1])]“” ?我已经用你的解决方案更新了我的文章,但由于某种原因,它仍然不起作用 – Alex 2013-03-23 15:01:41
我还为你实施该方法的方式添加了一个选项 – rene 2013-03-23 15:09:37
这很完美,谢谢你的帮助,rene! – Alex 2013-03-23 15:11:18