【发布时间】:2013-05-01 23:33:45
【问题描述】:
我正在尝试创建一个转换,在其中生成一个有序的唯一列表(其中连字符分隔两个值。
我有来源
<?xml version="1.0"?>
<results>
<result>
<Name>Blue</Name>
<Author>Hat</Author>
<TrackNum>5</TrackNum>
</result>
<result>
<Name>Red</Name>
<Author>Car</Author>
<TrackNum>2</TrackNum>
</result>
<result>
<Name>Blue</Name>
<Author>Hat</Author>
<TrackNum>345</TrackNum>
</result>
</results>
并且想要输出(按“名称”排序)
:: Blue - Hat
:: Red - Car
XLST - 目前不返回任何内容(我知道它也缺少第二个连字符/连接值)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:key name="Name" match="/results/result/Name/text()" use="." />
<xsl:template match="/">
<xsl:for-each select="/results/results/Name/text()[generate-id()
= generate-id(key('Name',.)[1])]">
<li>
<xsl:value-of select="."/>
</li>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
【问题讨论】: