1

我在网上搜索了这个,但我找不到任何相关的解决方案。

我有以下 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 个用于员工,另一个用于相关目标。

我需要的是我想对与LastModifiedOn来自FilterData节点的员工相关的所有目标进行排序。

注意:我通过像这样的拆分节点值获取 LastModifiedOn 值

nodevalue.Split('Æ')[0].Split('¥')[1]

现在我正在使用 System.XML 命名空间进行操作。我还查看了 LINQ TO XML,但我无法使其工作。

我通过以下代码获取 XMLNodelist

XmlNodeList 目标节点列表 =doc.DocumentElement.SelectNodes("/NewDataSet/Table[Entity='Employee' and EntityID='" + EntityId + "']/Goal");

在这里,我想要排序目标(相对于LastModifiedOn)。

我还查看了一些有用的链接,但到目前为止还没有任何想法

  1. 基于 DateTime 属性 C#、XPath 对 XML 节点进行排序
  2. XML文档排序

我准备将代码转换为LINQ TO XML但需要一个简短的示例。

4

1 回答 1

0

您可以尝试的一件事是创建一组键值对,其中键是目标,值是日期。然后,您可以通过比较日期来覆盖 CompareTo 方法,然后您可以只使用 [集合名称].Sort()。希望这可以帮助

于 2014-07-28T20:01:29.027 回答