Сортировка XML, когда существует значение поля узлов

Пожалуйста, помогите мне с приведенным ниже сценарием XML Input:

<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-04-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2099-12-31</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-04-14</Value>
    </FieldValue>
  </Fields>
</EmploymentUpdateRequest>
<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-01-14</Value>
    </FieldValue>
    <FieldValue Name="FORNAMN" Type="String">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value>Bianca</Value>
    </FieldValue>
</EmploymentUpdateRequest>
<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-01-14</Value>
    </FieldValue>
    <FieldValue Name="FORNAMN" Type="String">
      <ValidFrom Format="yyyy-MM-dd">2017-05-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-06-13</ValidUntil>
      <Value>Bianca</Value>
    </FieldValue>
  </Fields>
</EmploymentUpdateRequest>
<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-01-14</Value>
    </FieldValue>
    <FieldValue Name="FORNAMN" Type="String">
      <ValidFrom Format="yyyy-MM-dd">2017-02-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-03-13</ValidUntil>
      <Value>Bianca</Value>
    </FieldValue>
  </Fields>
</EmploymentUpdateRequest>
</EmploymentUpdateRequests>

Это должно быть отсортировано по одному и тому же номеру занятости, дочернему узлу FORNAMN/ значению даты ValidFrom в порядке возрастания. Когда есть FORNAMN, это не ноль. Если оно пустое, переместите все эти узлы в конец вывода и не сортируйте. Ожидаемый результат:

<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-01-14</Value>
    </FieldValue>
    <FieldValue Name="FORNAMN" Type="String">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value>Bianca</Value>
    </FieldValue>
</EmploymentUpdateRequest>
<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-01-14</Value>
    </FieldValue>
    <FieldValue Name="FORNAMN" Type="String">
      <ValidFrom Format="yyyy-MM-dd">2017-02-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-03-13</ValidUntil>
      <Value>Bianca</Value>
    </FieldValue>
  </Fields>
</EmploymentUpdateRequest>
<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-01-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-04-13</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-01-14</Value>
    </FieldValue>
    <FieldValue Name="FORNAMN" Type="String">
      <ValidFrom Format="yyyy-MM-dd">2017-05-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2017-06-13</ValidUntil>
      <Value>Bianca</Value>
    </FieldValue>
  </Fields>
</EmploymentUpdateRequest>
<EmploymentUpdateRequest>
  <CompanyNo>0070</CompanyNo>
  <EmploymentNo>982116</EmploymentNo>
  <Fields>
    <FieldValue Name="EmpFrom" Type="Date">
      <ValidFrom Format="yyyy-MM-dd">2017-04-14</ValidFrom>
      <ValidUntil Format="yyyy-MM-dd">2099-12-31</ValidUntil>
      <Value Format="yyyy-MM-dd">2017-04-14</Value>
    </FieldValue>
  </Fields>
</EmploymentUpdateRequest>
</EmploymentUpdateRequests>

0 ответов

Другие вопросы по тегам