[英]Filter by date in xslt for-each
我正在嘗試使用xslt 2.0
版過濾xml數據
這里是一些示例xml數據(我的數據遵循此模式)
<Messages>
<Message time="2015-08-06 22:00:11" type="Success">A</Message>
<Message time="2015-08-07 22:00:07" type="Success">B</Message>
<Message time="2015-08-07 22:00:15" type="Success">C</Message>
</Messages>
我嘗試使用此解決方案按日期過濾XPath查詢,這表明我使用了轉換將日期轉換為數字,但是卻收到一條錯誤消息(在Visual Studio中)
缺少必需的空格
這是我的代碼:
<xsl:for-each select="Messages/Message[translate(@time, "- :", "") > translate('2015-08-06 22:00:11', "- :", "")]">
由於嘗試在雙引號內使用雙引號,因此出現錯誤。 嘗試更改:
<xsl:for-each select="Messages/Message[translate(@time, "- :", "") > translate('2015-08-06 22:00:11', "- :", "")]">
至:
<xsl:for-each select="Messages/Message[translate(@time, '- :', '') > translate('2015-08-06 22:00:10', '- :', '')]">
PS:如果您使用的是XSLT 2.0,為什么不將這些值作為日期時間進行比較?
我在嘗試使用以下內容時遇到了類似的問題:
<xsl:variable select="userCSharp:StringConcat("00")" name="var:v1"/>
它引發了“缺少必需的空格”錯誤。 對我來說,以下解決方案有效:
<xsl:variable select="userCSharp:StringConcat("00")" name="var:v1"/>
它清除了錯誤,並讓我的代碼得以編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.