XmlDocument按日期时间字符串过滤节点

时间:2010-12-21 17:42:23

标签: .net xmldocument

尝试在Xmldocument中应用过滤器/属性比较。显然,以下代码片段不起作用,因为无法使用number()函数转换表达式。 (根据我的另一个问题的答案)。

我想知道是否有办法在XmlDoc中进行DateTime字符串比较。

XmlNodeList test = x2PathDoc.SelectNodes("//Config
                                         /Entity
                                           [@TargetDateTime> 
                                            '2010-12-19T03:25:00-08:00']");

1 个答案:

答案 0 :(得分:1)

进行比较时,xpath会将参数转换为数字。由于'2010-12-19T03:25:00-08:00'无法转换为数字,SelectNode会返回一个空列表。

如果您要以不同的格式存储日期以便将其转换为数字,那么您可以。请参阅以下示例:日期格式为yyyymmdd.hhmmss

var root = new XmlDocument();
root.LoadXml(@"<dates><date value=""20060419.201500""/><date value=""20060420.201500""/><date value=""20060421.201500""/></dates>");

var node = root.SelectNodes(@"dates/date[@value < 20060421.235959]")I