2010-12-16 25 views
2

我想在XmlDocument中做一個字符串比較,下面是我試過的。我想知道爲什麼前兩個產生正確的結果,最後兩個沒有返回任何結果。字符串在XmlDocument中的更大,更小和相等的比較

我想要做的是過濾出基於日期時間字符串的節點。就像我擁有的​​最後一個例子。

感謝,

XmlNodeList test = x2PathDoc.SelectNodes("//config 
              /pendingversion 
               [@versionconfigid > 1002002]"); 

XmlNodeList test2 = x2PathDoc.SelectNodes("//config 
              /pendingversion 
               [@versionconfigid >'1002002']"); 

XmlNodeList test3 = x2PathDoc.SelectNodes("//config 
              /pendingversion[@test > 'b']"); 

XmlNodeList test4 = x2PathDoc.SelectNodes("//config 
              /pendingversion 
               [@deploydatetime > 
               '2010-12-19T03:25:00-08:00']"); 
+0

這是xpath問題,無論如何,像瑪麗安娜問我們將不得不看到底層的XML文件.. – 2010-12-17 06:59:13

回答

5

在XPath 1.0,比相等比較其他運營商相比,僅適用於數字。這是因爲在XML中你正在處理UNICODE。因此,爲了使字符串成爲完整的有序數據類型,您需要在XPath 2.0中添加的歸類概念。

第一個表達式顯然是正確的。爲什麼第二個作品?因爲「大於」運算符會將這兩個參數與number()函數進行投射。

http://www.w3.org/TR/xpath/#booleans

首先,比較涉及在 比較不涉及 節點集術語定義 節點集;對於=,!=,< =,<,> =和>,這被統一定義爲 。

和描述existencial比較爲節點集合後(比較是唯一真正如果在用於至極比較設定的節點的節點爲true):

當待比較既不對象是 節點集並且操作者是通過兩個對象轉換爲數字 和比較所述數字根據 IEEE 754

<>=>,則對象被比較
+0

+1爲正確的答案 – 2010-12-17 15:09:03

相關問題