2017-08-23 60 views
0

我想按當前日期過濾我的XSL樣式表,以便僅顯示具有當前日期的條目。 我得到的當前日期用一個簡單的JavaScript函數:使用javascript函數對XSL文件進行排序

<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

向我們展示XML輸入和預期輸出的示例。 –

+0

我更新了問題..我只想顯示entrys與當前代碼。 – letsTry420

+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> 
+0

你真是太棒了。謝謝,它沒有任何問題的作品!如果我有足夠的投票聲望,我會投你的答案。 – letsTry420

+0

很高興爲您效力,對我也很好,我沒有意識到您可以使用MSXML輕鬆嵌入JavaScript功能。請接受這個答案。 –

相關問題