我有以下XML,我只需要获取Id
节点的值,但是我确实需要按DatePaid
节点的顺序来获取它们
<Payment>
<Id>47398</Id>
<DatePaid>09/01/2019 10:44:08</DatePaid>
</Payment>
<Payment>
<Id>63523</Id>
<DatePaid>09/07/2019 10:04:02</DatePaid>
</Payment>
<Payment>
<Id>94902</Id>
<DatePaid>09/05/2019 10:32:09</DatePaid>
</Payment>
所以结果列表将按此顺序排列
47398
94902
63523
我以为这将是使用LINQ流利语法的方法
XDocument xResults = XDocument.Parse(responseXml);
List<string> sortedRecordIds = xResults.Descendants("Id")
.OrderBy(d => DateTime.Parse(d.Element("DatePaid").Value).Date)
.Select(d => d.Value)
.ToList();
但是这引发了异常。我使用的排序不正确吗?
如果可以使用XDocument代理的XMLDocument,则可以这样实现。
您的XML(我认为您有一个根元素):