我现在有一个xml文档,其中一个结点的属性是时间字符串,我想查找出所有大于某个时间的结点,怎样写?
我试过用doc.SelectNodes("root/AffairDate[@date>'2006-11-21']"),不过返回Null。下面是xml的内容:
<root currentID="0">
<AffairDate date="2006-11-21">
<Affair id="1">
<name>周一上午开会</name>
<content>周一上午9:00在第一会议室开例会,所有人必须参加</content>
<remindtime>2006-11-27 8:45:00</remindtime>
<createtime>2006-11-22 10:52:12</createtime>
<lastmodifytime>2006-11-22 10:52:12</lastmodifytime>
<createman>zyxun</createman>
</Affair>
<Affair id="2">
<name>周一下午开会</name>
<content>周一下午15:30在第一会议室开例会,所有人必须参加</content>
<remindtime>2006-11-27 15:00:00</remindtime>
<createtime>2006-11-22 10:52:12</createtime>
<lastmodifytime>2006-11-22 10:52:12</lastmodifytime>
<createman>zyxun</createman>
</Affair>
</AffairDate>
<AffairDate date="2006-11-22">
<Affair id="3">
<name>周一上午开会</name>
<content>周一上午9:00在第一会议室开例会,所有人必须参加</content>
<remindtime>2006-11-27 8:45:00</remindtime>
<createtime>2006-11-22 10:52:12</createtime>
<lastmodifytime>2006-11-22 10:52:12</lastmodifytime>
<createman>zyxun</createman>
</Affair>
</AffairDate>
</root>

解决方案 »

  1.   

    http://www.microsoft.com/china/MSDN/library/data/xml/AddingCustomFunctionstoXpath.mspx?mfr=true
      

  2.   

    doc.SelectNodes("root/AffairDate[@date>'2006-11-21']")不能用 > 号:doc.SelectNodes("root/AffairDate[@date&gt;'2006-11-21']"),
      

  3.   

    To:fangxinggood(JustACoder) 
    你说的不行,出现下面的错误
    'root/AffairDate[@date:'2006-11-21']' has an invalid qualified name.
      

  4.   

    lz:你这样当然不会得到你想要的结果,doc.SelectNodes("root/AffairDate[@date>'2006-11-21']"),比较的是字符串,解析器并不知道智能比较日期。   在没有找到更好办法之前,我有一个稍微麻烦的办法:
    doc.SelectNodes("root/AffairDate"),得到所有的这类节点,再通过节点的date属性值过滤出你想要的结果。
      

  5.   

    日期不是这么比较的。
    http://www.microsoft.com/china/MSDN/library/data/xml/XPathintr.mspx
      

  6.   

    我看了XPath2.0的函数中有一个compare来比较字符,可以使用时总是报错,不知道怎么用这个函数:doc.SelectNodes("root/AffairDate[compare(@date,'2006-11-21')>-1]")有人用过吗,可以用来实现我要的功能吗?
      

  7.   

    http://www.cnblogs.com/thinhunan/archive/2006/10/11/525947.html