Datetime XSL,比较日期以排除任何过去的事件
我有一个事件提要的RSS。我想隐藏以前的事件 假设XML数据是Datetime XSL,比较日期以排除任何过去的事件,datetime,rss,xslt,Datetime,Rss,Xslt,我有一个事件提要的RSS。我想隐藏以前的事件 假设XML数据是 <Navigation Name="ItemList" Type="Children"> <Page ID="x32444" URL="..." Title="Class..." EventStartDate="20090831T23:00:00" EventEndDate="20090904T23:00:00" EventStartTime="20090830T15:30:00" EventEndTime="
<Navigation Name="ItemList" Type="Children">
<Page ID="x32444" URL="..." Title="Class..."
EventStartDate="20090831T23:00:00" EventEndDate="20090904T23:00:00"
EventStartTime="20090830T15:30:00" EventEndTime="20090830T18:30:00" Changed="20090830T20:28:31" CategoryIds="" Schema="Event"
Name="Class of 2010 BAKE SALE"/>
<Page ID="x32443" URL="x32443.xml?Preview=true&Site=&UserAgent=&IncludeAllPages=true&tfrm=4" Title="Class of 2010 BAKE SALE"
Abstract="Treat yourself with our famous 10-star FRIED ICE CREAM!" EventStartDate="20090831T23:00:00" EventEndDate="20090904T23:00:00"
EventStartTime="20090830T15:30:00" EventEndTime="20090830T18:30:00" Changed="20090830T20:25:35" CategoryIds="" Schema="Event"
Name="Class of 2010 BAKE SALE"/>
<Page ID="x32426" URL="x32426.xml?Preview=true&Site=&UserAgent=&IncludeAllPages=true&tfrm=4" Title="Tribute to ..."
Abstract="Event to recognize and celebrate the lifetime of leadership and service ..."
EventStartDate="20091206T00:00:00" EventEndDate="20091206T00:00:00" EventStartTime="20090828T23:00:00" EventEndTime="20090828T04:00:00"
Changed="20090828T22:09:54" CategoryIds="" Schema="Event" Name="Tribute to ...."/>
</Navigation>
我怎么能不包括超过今天日期的内容
<xsl:apply-template select="Page[@EventStartDate=notBeforeToday()]"/>
使用从外部设置的XSL参数最简单
<xsl:param name="today" select="'undefined'" />
<!-- time passes... -->
<xsl:apply-templates select="Page[@EventStartDate < $today]"/>
作为今天$param的值。查看XSLT处理器的文档,了解如何使用它
另一种方法是使用扩展函数。这里它取决于XSLT处理器支持哪些扩展函数,因此这种方法是不可移植的。为此,我通常在XML中添加一个额外的日期属性,其中包含1900年以来的日期 例如@dateid='9876543'或@seconds=9876675446545 这样我就可以很容易地与today或XSL中的另一个变量进行比较
您还可以使用此技术来比较使用Unix时间的时间,例如重复的时间以及看起来可能重复的时间,这个问题并不清楚。您是否试图排除过去或将来的日期?
20091001T00:00:00