<?xml version="1.0" encoding="UTF-8"?>
<sortedResults xmlns="urn:com-avaneesh-abc:v1">
<result time-zone="America/Chicago" event-end-dt-tm="2013-06-11T15:37:00.000-05:00"
event-id="16886888"/>
<result time-zone="America/Chicago" event-end-dt-tm="2013-06-13T15:37:00.000-05:00"
event-id="16886890"/>
<result time-zone="America/Chicago" event-end-dt-tm="2013-06-10T15:37:00.000-05:00"
event-id="16886884"/>
<result time-zone="America/Chicago" event-end-dt-tm="2013-06-10T15:37:00.000-05:00"
event-id="16886878"/>
<result time-zone="America/Chicago" event-end-dt-tm="2013-06-13T15:37:00.000-05:00"
event-id="16886886"/>
<result time-zone="America/Chicago" event-end-dt-tm="2013-06-11T15:37:00.000-05:00"
event-id="1688687416886876"/>
</sortedResults>我想对上面的示例XML进行排序,它是一个<xsl:variable>的一部分,将按每个<result>的event-end-dt-tm进行排序,并将最新日期移到一个XML标记<first>下,最旧的移到<last>下,其余的移到<other>标记下。我尝试使用<xsl:sort>,但它不能按预期进行排序。
发布于 2017-03-31 06:05:42
这个XSLT-1.0将根据属性@event-end-dt-tm对<sortedResults>的所有<result>子项进行排序,同时能够识别名称空间urn:com-avaneesh-abc:v1
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ava="urn:com-avaneesh-abc:v1">
<xsl:output method="xml" />
<xsl:template match="/ava:sortedResults">
<xsl:apply-templates>
<xsl:sort select="@event-end-dt-tm" />
</xsl:apply-templates>
</xsl:template>
<xsl:template match="ava:result">
<!-- Put your desired processing here !!! -->
<xsl:value-of select="@event-id" /><xsl:text> </xsl:text> <!-- For example the @event-id followed by a newline -->
</xsl:template>
</xsl:stylesheet>https://stackoverflow.com/questions/43128710
复制相似问题