簡體   English   中英

在xslt for-each中按日期過濾

[英]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(&quot;00&quot;)" name="var:v1"/>

它清除了錯誤,並讓我的代碼得以編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM