2015-04-01 82 views
0

所以,我的XML我有這樣的:有沒有辦法在xpath表達式中比較時間?

<venues> 
<venue venueID="1"> 
    <name>Nillington Center</name> 
    <location>Nullville</location> 
    <capacity>10000</capacity> 
    <openingTime>07:00:00</openingTime> 
    <closingTime>22:00:00</closingTime> 
    <Manager>DJ8S1L0</Manager> 
    <telephone>01101 111011</telephone> 
</venue> 

是否有可能構建一個XPath表達式可以計算,假設有多個場館,openingTime> '18:00:00' ,如果是這樣,如何?

比較工作正常的整數,例如我沒有問題,像 /venues/venue[capacity > 8000]工作,但不是時間。

任何幫助,將不勝感激:)

回答

1

試試這個:

venues/venue[number(translate(substring(openingTime, 1, 5), ":", ".")) &gt; 18] 

步驟:

  • 擺脫秒部分的(我認爲這是不重要的)
  • 換出小數點後的「:」,這樣字符串就可以進行數字轉換(換句話說,18:00變爲18.00)
  • 轉換小時和分鐘部分數字(這使得比較有效)
+0

嗯,當我嘗試在一個驗證它說,它不是一個有效的XPath表達式,但是'場館/場館[數( closingTime)> 18]' 使用XML中的時間格式更改爲「23.00」 – user2891996 2015-04-01 23:33:40

+0

應該是有效的 - 在我測試時爲我工作。 – Utkanos 2015-04-02 12:39:12

相關問題