2017-08-23 13 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

私は質問を更新しました..私は現在のコードでエントリを表示したいだけです。 – 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関数を簡単に組み込むことができないことはわかりませんでした。これを答えとして受け入れてください。 –

関連する問題