我想按当前日期过滤我的XSL样式表,以便只显示具有当前日期的条目。 我用简单的javascript函数获取当前日期:
<msxsl:script language="JScript" implements-prefix="myJavaScript">
<![CDATA[
function getDate() {
var today = new Date();
var d = today.getDate();
var m = today.getMonth() + 1;
var y = today.getFullYear();
var year = d + "." + m + "." + y;
return year;
}
]]>
</msxsl:script>
现在我想按当前日期过滤我的XSL数据。
我尝试了这个,但这不起作用:
<xsl:for-each select="logEntry">
<xsl:if expression='<xsl:value-of select="myJavaScript:getDate()"/> == 23.08.2017'>
也许有人知道如何解决这个问题。 我正在使用XML / XSL 1.0。我知道XML / XSL 2.0有一个内置函数来获取当前日期,但我需要使用1.0版本。
由于
答案 0 :(得分:0)
这是一个有效的例子
示例XML
<xml>
<list output='no'>20.8.2017</list>
<list output='no'>21.8.2017</list>
<list output='no'>22.8.2017</list>
<list output='yes'>23.8.2017</list>
<list output='no'>24.8.2017</list>
</xml>
和这个XSL
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:myJavaScript="urn:my-javascripts"
>
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<msxsl:script language="JScript" implements-prefix="myJavaScript">
<![CDATA[
function getDate() {
var today = new Date();
var d = today.getDate();
var m = today.getMonth() + 1;
var y = today.getFullYear();
var year = d + "." + m + "." + y;
return year;
}
]]>
</msxsl:script>
<xsl:template match="/">
<xsl:variable name='dt' select='myJavaScript:getDate()'/>
<xml>
<xsl:attribute name='dt'><xsl:value-of select='$dt'/></xsl:attribute>
<xsl:for-each select='//list[.=$dt]'>
<xsl:copy-of select='.'/>
</xsl:for-each>
</xml>
</xsl:template>
</xsl:stylesheet>
产生此结果
<xml dt="23.8.2017" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:myJavaScr
ipt="urn:my-javascripts">
<list output="yes">23.8.2017</list>
</xml>