Я пытаюсь преобразовать XML.Старый xsl был написан кем-то другим, и он довольно статичен, ищет каждый узел и записывает их.Но мне нужно изменить это на динамический путь.Вот XML-файл (упрощенная версия):
<?xml version="1.0" encoding="UTF-8"?>
<csprint>
<csrequest>
<p:Body xmlns:p="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="wsdl.http://isbank.com/OpSvcs/PaymentMgmtProcessing/TaxCollection/Service/V1" xmlns:v1_1="http://isbank.com/OpSvcs/PaymentMgmtProcessing/TaxCollection/Service/V1" xmlns:v1_2="http://isbank.com/OpSvcs/PaymentMgmtProcessing/Tax/Schema/V1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<v1_1:collect>
<v1_1:collectionData>
<v1_2:taxOfficeNo>34256</v1_2:taxOfficeNo>
<v1_2:mainTaxCode>9077</v1_2:mainTaxCode>
<v1_2:debtLineItem>
<v1_2:taxCode>1086</v1_2:taxCode>
<v1_2:installmentNumber>1</v1_2:installmentNumber>
<v1_2:dueDate>2011-02-28</v1_2:dueDate>
<v1_2:amount>
<amount>174134.40</amount>
</v1_2:amount>
<v1_2:taxShortName>Y.DIŞI ÇKŞ.H</v1_2:taxShortName>
</v1_2:debtLineItem>
<v1_2:debtLineItem>
<v1_2:taxCode>1086</v1_2:taxCode>
<v1_2:installmentNumber>1</v1_2:installmentNumber>
<v1_2:dueDate>2011-02-28</v1_2:dueDate>
<v1_2:amount>
<amount>174134.40</amount>
</v1_2:amount>
<v1_2:taxShortName>Y.DIŞI ÇKŞ.H</v1_2:taxShortName>
</v1_2:debtLineItem>
<v1_2:debtLineItem>
<v1_2:taxCode>9014</v1_2:taxCode>
<v1_2:installmentNumber>1</v1_2:installmentNumber>
<v1_2:dueDate>2011-02-28</v1_2:dueDate>
<v1_2:amount>
<amount>174134.40</amount>
</v1_2:amount>
<v1_2:taxShortName>Y.DIŞI ÇKŞ.H</v1_2:taxShortName>
</v1_2:debtLineItem>
<v1_2:debtLineItem>
<v1_2:taxCode>9014</v1_2:taxCode>
<v1_2:installmentNumber>1</v1_2:installmentNumber>
<v1_2:dueDate>2011-02-28</v1_2:dueDate>
<v1_2:amount>
<amount>174134.40</amount>
</v1_2:amount>
<v1_2:taxShortName>Y.DIŞI ÇKŞ.H</v1_2:taxShortName>
</v1_2:debtLineItem>
</v1_1:collectionData>
</v1_1:collect>
</p:Body>
</csrequest>
</csprint>
, и вот мое условие:
if (mainTaxCode == 9077 && taxCode == 1086)
sum /debtLineItem/amount/amount of all 1086 nodes and write just once
else
write all
, и в этом случае результат должен выглядеть как
TaxCode DueDate Amount
1086 2011-02-28 348268.80
9014 2011-02-28 174134.40
9014 2011-02-28 174134.40
Я не могу двигаться дальше, продолжаю суммировать все 3 значения.Любая помощь приветствуется.Спасибо ..