我想排序顯示在列表中的所有演員名稱。必須有一些簡單的東西我失蹤了,但我無法弄清楚它是什麼。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