Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何对一个<;xsl:variable>;_Xml_Sorting_Xslt - Fatal编程技术网

Xml 如何对一个<;xsl:variable>;

Xml 如何对一个<;xsl:variable>;,xml,sorting,xslt,Xml,Sorting,Xslt,我想对上述示例XML进行排序,它是的一部分,将按照每个的事件结束dt tm进行排序,并将最新日期移动到一个XML标记下,最旧日期移动到下,其余日期移动到标记下。我试图使用,但它没有按预期进行排序。此XSLT-1.0将通过属性@event end dt tm对的所有子级进行排序,同时对命名空间urn:com avanesh abc:v1: <?xml version="1.0" encoding="UTF-8"?> <sortedResults xmlns="urn:com-av

我想对上述示例XML进行排序,它是
的一部分,将按照每个
事件结束dt tm
进行排序,并将最新日期移动到一个XML标记
下,最旧日期移动到
下,其余日期移动到标记
下。我试图使用
,但它没有按预期进行排序。

此XSLT-1.0将通过属性
@event end dt tm
的所有
子级进行排序,同时对命名空间
urn:com avanesh abc:v1
:

<?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>


  

能否显示您尝试过的XSLT?特别是,您是否可以澄清说XML是
的一部分是什么意思?顺便问一下,您使用的是XSLT1.0还是XSLT2.0?谢谢。根据你的描述,听起来好像你想做一些分组和排序。但是它一点也不清楚,例如,您想要一个
元素,还是每个不同的日期都需要一个
元素?显示您想要的输出通常有助于解释需求。我只想要三个类别,一个是最新的,另一个是最旧的,其余的都归入其他类别(单个其他)。需要注意的是,假设今天有两个时间戳,昨天有3个,前天有2个,它们将按上述规定分为相应的组。
<?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>&#10;</xsl:text>  <!-- For example the @event-id followed by a newline -->
  </xsl:template>

</xsl:stylesheet>