2010-12-21 53 views
0

尝试在Xmldocument中应用筛选器/属性比较。显然,下面的代码片段不起作用,因为不能使用number()函数转换表达式。 (根据我的另一个问题的答案)。XmlDocument筛选器节点按日期时间字符串

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

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

回答

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