Я пытаюсь суммировать некоторые значения XML в одном узле на основе значения в другом узле.Значения суммирования XSLT, основанные на других значениях узлов
Узел в Entry
, что относится к пункту всегда один RecordNo
меньше RecordNo
в Item
. Так Entry
с RecordNo
1 относятся к пункту с RecordNo
2.
Я хочу суммировать все Элемент/узлы затрат, где IsValid = 1
для соответствующего входа узла. Я могу использовать только XSLT версии 1.0.
Я попытался
Sum(../Items/Item[../Entries/Entry[IsValid=1 and RecordNo -1 = ../Entries/Entry/RecordNo]])
Мой желаемый выход из приведенного ниже примера будет 22.
<Root>
<Items>
<Item>
<Cost>10</Cost>
<RecordNo>2</RecordNo>
<Type>1</Type>
</Item>
<Item>
<Cost>12</Cost>
<RecordNo>5</RecordNo>
<Type>1</Type>
</Item>
<Item>
<Cost>10</Cost>
<RecordNo>9</RecordNo>
<Type>2</Type>
</Item>
</Items>
<Entries>
<Entry>
<IsValid>1</IsValid>
<RecordNo>1</RecordNo>
</Entry>
<Entry>
<IsValid>1</IsValid>
<RecordNo>4</RecordNo>
</Entry>
<Entry>
<IsValid>0</IsValid>
<RecordNo>8</RecordNo>
</Entry>
</Entries>
</Root>
Что вы пробовали? Что не работает? Что должно сделать преобразование? Просьба уточнить. –
Я обновил вопрос с помощью моего желаемого результата и что-то, что я пробовал – Davem
Намного лучше. Пожалуйста, взгляните на мой ответ. –