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,那么对象相比较由两个对象转换到数字和比较所述数字
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |