XmlDocument中的字符串更大,更少和相等的比较

Eat*_*oku 2 .net c# xpath xmldocument

我正在尝试在XmlDocument中进行字符串比较,以下是我尝试过的.我想知道为什么前2个产生正确的结果,而最后2个没有返回任何结果.

我想要做的是根据日期时间字符串过滤掉节点.就像我的最后一个例子.

谢谢,

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']");
Run Code Online (Sandbox Code Playgroud)

小智 6

在XPath 1.0中,除了相等比较之外的比较运算符仅适用于数字.这是因为在XML中你正在处理UNICODE.因此,为了使字符串成为完整的有序数据类型,您需要在XPath 2.0中添加它的归类概念.

第一个表达是显而易见的.为什么第二个有效?因为"大于"运算符使用number()函数转换两个参数.

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

首先,涉及节点集的比较是根据不涉及节点集的比较来定义的; 这是针对=,!=,<=,<,> =和>统一定义的.

在描述了节点集的存在性比较之后(只有当节点集中存在节点时才进行比较,比较为真):

当要比较既不对象是一个节点集合和操作者是<=,<, >=>根据IEEE 754,那么对象相比较由两个对象转换到数字和比较所述数字