Сложная сортировка подузлов XML в .Net3.5 и далее - PullRequest
1 голос
/ 28 апреля 2010

XML-структура, выраженная в виде Xpath

Records/Record/Actions/Action/ActionDate

другой узел на том же уровне

Records/Record/Actions/Action/CTCDate

Существует ли простой или не простой способ сортировки по «порядке по ActionDate, CTCDate» (в нотации SQL), но по действиям для каждой выбранной записи (не для файла XML), когда мы каким-либо образом выполняем итерацию и генерируем отсортированный XML. Файл около 50M

Ввод

  <Record>
    <Name>Zywocinski, Cynthia A.</Name>
    <Classification>Individual</Classification>
    <CTType>Reciprocal</CTType>
    <Addresses>
      <Address>
        <City>Lancaster</City>
        <ZIP>01523</ZIP>
        <Province/>
        <State>MA</State>
        <DUNS/>
      </Address>
    </Addresses>
    <References>
      <Reference>Zywocinski-White, Cynthia</Reference>
    </References>
    <Actions>
     <Action>
       <ActionDate>13-Oct-1999</ActionDate>
       <TermDate>Indef.</TermDate>
       <CTCode>Z1</CTCode>
       <AgencyComponent>HHS</AgencyComponent>
       <EPLSCreateDate>29-Jul-1999</EPLSCreateDate>
     </Action>
     <Action>
       <ActionDate>13-Oct-1999</ActionDate>
       <TermDate>Indef.</TermDate>
       <CTCode>A1</CTCode>
       <AgencyComponent>HHS</AgencyComponent>
       <EPLSCreateDate>29-Jul-1999</EPLSCreateDate>
     </Action>
     <Action>
       <ActionDate>20-Jul-1999</ActionDate>
       <TermDate>Indef.</TermDate>
       <CTCode>R</CTCode>
       <AgencyComponent>OPM</AgencyComponent>
       <EPLSCreateDate>29-Oct-1999</EPLSCreateDate>
     </Action>
    </Actions>
    <Description/>
    <AgencyIdentifiers/>
  </Record>

Выход

  <Record>
    <Name>Zywocinski, Cynthia A.</Name>
    <Classification>Individual</Classification>
    <CTType>Reciprocal</CTType>
    <Addresses>
      <Address>
        <City>Lancaster</City>
        <ZIP>01523</ZIP>
        <Province/>
        <State>MA</State>
        <DUNS/>
      </Address>
    </Addresses>
    <References>
      <Reference>Zywocinski-White, Cynthia</Reference>
    </References>
    <Actions>
     <Action>
       <ActionDate>20-Jul-1999</ActionDate>
       <TermDate>Indef.</TermDate>
       <CTCode>R</CTCode>
       <AgencyComponent>OPM</AgencyComponent>
       <EPLSCreateDate>29-Oct-1999</EPLSCreateDate>
     </Action>
     <Action>
       <ActionDate>13-Oct-1999</ActionDate>
       <TermDate>Indef.</TermDate>
       <CTCode>A1</CTCode>
       <AgencyComponent>HHS</AgencyComponent>
       <EPLSCreateDate>29-Jul-1999</EPLSCreateDate>
     </Action>
     <Action>
       <ActionDate>13-Oct-1999</ActionDate>
       <TermDate>Indef.</TermDate>
       <CTCode>Z1</CTCode>
       <AgencyComponent>HHS</AgencyComponent>
       <EPLSCreateDate>29-Jul-1999</EPLSCreateDate>
     </Action>
    </Actions>
    <Description/>
    <AgencyIdentifiers/>
  </Record>
...