对具有特定Node值的XmlNodeList进行排序
本文关键字:XmlNodeList 排序 值的 Node | 更新日期: 2023-09-27 17:52:13
我在网上搜索了这个,但是我没能找到任何相关的解决方案。
我有以下XML
<Table>
<Entity>Employee</Entity>
<EntityID>2786</EntityID>
<Goal>
<GoalId>31931</GoalId>
<FilterData>LastModifiedOn¥2014-03-20T18:11:01.0000000+05:30ÆActiveTaskCount¥0</FilterData>
</Goal>
<Goal>
<GoalId>31932</GoalId>
<FilterData>LastModifiedOn¥2014-03-22T15:26:09.0000000+05:30ÆActiveTaskCount¥0</FilterData>
</Goal>
<Goal>
<GoalId>31932</GoalId>
<FilterData>LastModifiedOn¥2014-03-22T09:25:00.0000000+05:30ÆActiveTaskCount¥0</FilterData>
</Goal>
</Table>
从上面的XML当我读取数据时,我得到了2个单独的DataTables
;1个用于员工,另一个用于相关目标。
我需要的是,我想对FilterData
节点中与LastModifiedOn
相关的所有与员工相关的目标进行排序。
注意:我得到的lastmodifieldon值分割节点值像这样
nodevalue.Split('Æ')[0].Split('¥')[1]
现在我正在使用System.XML命名空间进行操作。我也看了LINQ TO XML,但我无法使它工作。
我通过以下代码获得xmlnodeist
XmlNodeList GoalNodesList = doc.DocumentElement.SelectNodes("/NewDataSet/Table[Entity='Employee' and EntityID='" + EntityId + "']/Goal");
这里我想要排序目标(相对于LastModifiedOn
)。
我也看了一些有用的链接,但到目前为止还没有得到任何想法
- 基于DateTime属性的XML节点排序c#, XPath
- XMLdocument类
我准备将代码转换为LINQ TO XML
,但需要一个简短的例子。
您可以尝试创建一个键值对集合,其中键是目标,值是日期。然后你可以通过比较日期来覆盖CompareTo方法,然后你可以使用[collection name]. sort()。希望对大家有所帮助