我有一个xml,我想通过date.my代码进行排序它到现在为止是这样的问题按日期排序---> XML
XmlDocument doc = new XmlDocument();
doc.Load("/ABC.xml");
XPathNavigator nav = doc.CreateNavigator();
//doing some filtering and creating xpath expression based on that
XPathExpression expression = nav.Compile(xpath);
XPathExpression sortexpression = nav.Compile("/categories/category/date/text()");
DateComparer dc = new DateComparer();
//expression.AddSort("sortexpression", dc);
编辑:我已经改变了这
expression.AddSort(sortexpression,dc);
现在没有错误,但sortin不能正常工作,而当我开始知道在datecomparer类中只有我的xml的第一个日期正在进行,并且因此没有进行排序。但为什么只有我的第一个XML日期进入datecomparer.Any想法,我错了?
XPathNodeIterator iterator = nav.Select(expression);
后来与我的中继
public class DateComparer : IComparer
{
public DateComparer() { }
public int Compare(object date1, object date2)
{
DateTime d1 = Convert.ToDateTime(date1);
DateTime d2 = Convert.ToDateTime(date2);
return d1.CompareTo(d2);
}
}
我的XML绑定此迭代器是这样
<categories>
<category>
<title>ABCD<title>
<date>2002-01-01<date>
<category>
<categories>
日期I M安宁是YYYY-MM-DD格式。我也尝试过其他格式的日期,例如mm/dd/yyyy和dd/mm/yyyy。
//但是当我执行此代码时,我得到错误“字符串未被识别为有效的日期时间”。任何想法在我的代码中有什么问题?
编辑:没有错误见上
感谢您的答复我已经测试了mm/dd/yyyy和dd/mm/yyyy但仍然错误是一样的 – 2009-12-27 19:24:13