提取;“最老的”;XSLT 1.0中XML数据的日期
再次与XSLT1.0发生冲突。这一次我有以下场景。我有一些数据,每个数据都有一个指定的日期。我可以按顺序打印它们,但由于我对XSLT的了解不多,这不是我想要的。我不想从XML中得到完整的输出,我只想得到最新或最旧的数据 日期格式为“dd/mm/yyyy” 例如,使用以下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
<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(),以查找排序顺序中的第一个和最后一个