Сортировка 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>