【发布时间】:2013-05-14 20:15:48
【问题描述】:
在 C# 中,我尝试使用 OrderByDescending 对 XDocument 进行排序。目标是读取包含日期/时间戳的子节点之一并重新排序父节点。
我从保存的文件中加载 XML,如下所示:
XDocument Doc = new XDocument();
Doc= XDocument.Load(filename);
这是我的 XML 示例:
<KS>
<Team>
<TeamName>Knights</TeamName>
<TeamColor>blue</TeamColor>
<LastAccessed>5/9/2013 2:34:22 PM</LastAccessed>
</Team>
<Team>
<TeamName>Rangers</TeamName>
<TeamColor>red</TeamColor>
<LastAccessed>5/9/2013 3:49:06 PM</LastAccessed>
</Team>
<Team>
<TeamName>Eagles</TeamName>
<TeamColor>green</TeamColor>
<LastAccessed>5/9/2013 3:50:18 PM</LastAccessed>
</Team>
</KS>
我想根据子元素 <LastAccessed> 降序排列 <Team>。
我尝试了以下方法,但没有任何运气:
var results = Doc.Root.Descendants("Team").OrderByDescending(p => p.Element("LastAccessed"));
XDocument node = new XDocument(Doc.Descendants("KS").OrderByDescending(x => x.Element("Team").Element("LastAccessed").Value.Trim()));
有什么建议可以根据存储在子节点中的值对 XML 父节点进行排序吗?
【问题讨论】:
-
你使用什么日期时间格式?
标签: c# xml linq linq-to-xml