Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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
提取;“最老的”;XSLT 1.0中XML数据的日期_Xml_Date_Xslt - Fatal编程技术网

提取;“最老的”;XSLT 1.0中XML数据的日期

提取;“最老的”;XSLT 1.0中XML数据的日期,xml,date,xslt,Xml,Date,Xslt,再次与XSLT1.0发生冲突。这一次我有以下场景。我有一些数据,每个数据都有一个指定的日期。我可以按顺序打印它们,但由于我对XSLT的了解不多,这不是我想要的。我不想从XML中得到完整的输出,我只想得到最新或最旧的数据 日期格式为“dd/mm/yyyy” 例如,使用以下XML: <PICNews> <news> <Date>31/06/2007</Date> <Author>Dan Jurden</Autho

再次与XSLT1.0发生冲突。这一次我有以下场景。我有一些数据,每个数据都有一个指定的日期。我可以按顺序打印它们,但由于我对XSLT的了解不多,这不是我想要的。我不想从XML中得到完整的输出,我只想得到最新或最旧的数据

日期格式为“dd/mm/yyyy”

例如,使用以下XML:

<PICNews>

 <news>

    <Date>31/06/2007</Date>
    <Author>Dan Jurden</Author>
    <Type>Memo</Type>
    <Text>This is a memo.</Text>
</news>
<news>
    <Date>21/07/2007</Date>
    <Author>Dan Jurden</Author>
    <Type>News</Type>
    <Text>This is some news.</Text>
</news>
<news>
    <Date>22/06/2007</Date>
    <Author>Dan Jurden</Author>
    <Type>Alert</Type>
    <Text>This is an alert.</Text>
</news>

31/06/2007
丹尤登
备忘录
这是一份备忘录。
21/07/2007
丹尤登
新闻
这是一些新闻。
22/06/2007
丹尤登
警觉的
这是警报。

我想找到一个能让我回到2007年6月22日和2007年7月21日的转变

以下XSLT代码(只是一个片段)将按顺序列表打印数据,我只想获取第一个或最后一个:

<xsl:for-each select="/PICNews/news">
    <xsl:sort select="substring(./Date,7,10)" order="descending"/> 
    <xsl:sort select="substring(./Date,4,6)" order="descending"/> 
    <xsl:sort select="substring(./Date,1,2)" order="descending"/> 
    Date = <xsl:value-of select="./Date" />  <br/>
</xsl:for-each>

日期=
我正在寻找一种解决方案,如:

<xsl:apply-templates select="OldestDate"/>

那应该是2007年6月22日

有什么建议吗

我只想得到第一个或最后一个:

<xsl:for-each select="/PICNews/news">
    <xsl:sort select="substring(./Date,7,10)" order="descending"/> 
    <xsl:sort select="substring(./Date,4,6)" order="descending"/> 
    <xsl:sort select="substring(./Date,1,2)" order="descending"/> 
    Date = <xsl:value-of select="./Date" />  <br/>
</xsl:for-each>
要获取第一个(即最早的)日期,请尝试:

<xsl:for-each select="/PICNews/news">
    <xsl:sort select="substring(Date,7,4)" data-type="number" order="ascending"/>
    <xsl:sort select="substring(Date,4,2)" data-type="number" order="ascending"/>
    <xsl:sort select="substring(Date,1,2)" data-type="number" order="ascending"/>
    <xsl:if test="position()=1">
         Date = <xsl:value-of select="Date" />  <br/>
    </xsl:if>
</xsl:for-each>

日期=
要获取最后(即最新)日期,请更改:

<xsl:if test="position()=1">

致:




注意,对于每个,请注意
子字符串()
调用和
数据类型
内部的差异,您可以分别检查
位置()=last(),以查找排序顺序中的第一个和最后一个