如何将此XML输出为排名?
我有以下XML:如何将此XML输出为排名?,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,我有以下XML: <bookings> <booking> <event>Christmas Party</event> <source>Internet</source> </booking> <booking> <event>Church day</event> <source>Television</sou
<bookings>
<booking>
<event>Christmas Party</event>
<source>Internet</source>
</booking>
<booking>
<event>Church day</event>
<source>Television</source>
</booking>
<booking>
<event>Port Anniversary</event>
<source>Television</source>
</booking>
<booking>
<event>Disco Fever</event>
<source>Internet</source>
</booking>
<booking>
<event>Party Night</event>
<source>Internet</source>
</booking>
<booking>
<event>Christmas Party</event>
<source>Flyer</source>
</booking>
</bookings>
圣诞晚会
互联网
教会日
电视机
港口周年纪念
电视机
油脂曱甴
互联网
派对之夜
互联网
圣诞晚会
传单
我需要这样输出它:
预订的主要营销来源:
谢谢你的帮助 XSLT1.0中这类问题的常见答案是Muenchian分组。首先定义一个键
<xsl:key name="bookingsBySource" match="booking" use="source" />
然后使用以下技巧迭代唯一的源值
<xsl:template match="/bookings">
<ol>
<xsl:for-each select="booking[generate-id() =
generate-id(key('bookingsBySource', source)[1])]">
<!-- sort by number of bookings, largest first -->
<xsl:sort select="count(key('bookingsBySource', source))"
data-type="number"
order="descending" />
<li>
<xsl:value-of select="source"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="count(key('bookingsBySource', source))" />
<xsl:text> booking(s)</xsl:text>
</li>
</xsl:for-each>
</ol>
</xsl:template>
:
预订
for each select只为每个
源
值提取第一个booking
元素。XSLT 1.0中这类问题的通常答案是Muenchian分组。首先定义一个键
<xsl:key name="bookingsBySource" match="booking" use="source" />
然后使用以下技巧迭代唯一的源值
<xsl:template match="/bookings">
<ol>
<xsl:for-each select="booking[generate-id() =
generate-id(key('bookingsBySource', source)[1])]">
<!-- sort by number of bookings, largest first -->
<xsl:sort select="count(key('bookingsBySource', source))"
data-type="number"
order="descending" />
<li>
<xsl:value-of select="source"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="count(key('bookingsBySource', source))" />
<xsl:text> booking(s)</xsl:text>
</li>
</xsl:for-each>
</ol>
</xsl:template>
:
预订
for each select只为每个
源
值提取第一个booking
元素。您是否尝试过使用XSL?您从哪里获得预订量?呃,对不起。知道了。忽略我的第二个问题;)您是否尝试过使用XSL?您从哪里获得预订量?呃,对不起。知道了。忽略我的第二个问题;)需要一个小的扩展名:
以获得预期的输出。@hr_117我的意思是使用
(自动编号)而不是
。我现在已经解决了这个问题。需要一个小扩展:
以获得预期的输出。@hr_117我的意思是使用
(自动编号)而不是
。我现在已经修好了。