Вы не объясняете, какие именно значения суммируются.
Судя по представленному коду XSLT, кажется, что вам нужна сумма значений всех элементов "Duration" . Это можно получить с помощью следующего простого выражения XPath:
sum(/*/*/Duration)
Ниже приведено полное преобразование XSLT :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="sum(/*/*/Duration)"/>
</xsl:template>
</xsl:stylesheet>
когда это преобразование применяется к предоставленному документу XML :
<Parts>
<Part>
<PartNum>0000-A123</PartNum>
<Rate>0</Rate>
<Rate0Decimal>0</Rate0Decimal>
<ProductRemovedNumber>...</ProductRemovedNumber>
<Qty>2</Qty>
<Resolution>False</Resolution>
<ReturnFA>False</ReturnFA>
<SerialNumber />
<TickProblemCD>15</TickProblemCD>
<TicketNum>075020009000048</TicketNum>
<Total>0</Total>
<Total0Decimal>0</Total0Decimal>
<TotalDisplay>0</TotalDisplay>
<UserNumber>009</UserNumber>
</Part>
<Part>
<Duration>2</Duration>
<Total>0</Total>
<PartCost>0.00</PartCost>
<PartCost0Decimal>0</PartCost0Decimal>
<PerformedBy>TEST</PerformedBy>
<WorkDoneCode />
<WorkDoneDesc />
<ZoneBasedTravel>False</ZoneBasedTravel>
<PartNum>Travel</PartNum>
<PartDescr>---</PartDescr>
<Qty>2</Qty>
</Part>
<Part>
<Duration>4</Duration>
<DurationRequired>True</DurationRequired>
<EndTime>12/4/2008 2:24 PM</EndTime>
<EndTimeOnly>12/4/2008</EndTimeOnly>
<FamilyName>NON-COMPLAINT</FamilyName>
<FOC>False</FOC>
<InvTxnGenerated />
<LastUpdatedDate>12/4/2008 2:24 PM</LastUpdatedDate>
<Rate>0</Rate>
<Rate0Decimal>0</Rate0Decimal>
<RateType>Install</RateType>
<Total>0</Total>
<PartCost>0.00</PartCost>
<PartCost0Decimal>0</PartCost0Decimal>
<PerformedBy>TEST</PerformedBy>
<WorkDoneCode>17000</WorkDoneCode>
<WorkDoneDesc>De-Installation / Instrument Move</WorkDoneDesc>
<ZoneBasedTravel>False</ZoneBasedTravel>
<PartNum>Labor</PartNum>
<PartDescr>Install</PartDescr>
<Qty>4</Qty>
</Part>
<Part>
<Duration>1</Duration>
<DurationRequired>True</DurationRequired>
<EndTime>12/4/2008 2:24 PM</EndTime>
<EndTimeOnly>12/4/2008</EndTimeOnly>
<FamilyName>NON-COMPLAINT</FamilyName>
<FOC>False</FOC>
<InvTxnGenerated />
<LastUpdatedDate>12/4/2008 2:24 PM</LastUpdatedDate>
<Rate>0</Rate>
<Rate0Decimal>0</Rate0Decimal>
<RateType>TSB/ISA</RateType>
<Total>0</Total>
<PartCost>0.00</PartCost>
<PartCost0Decimal>0</PartCost0Decimal>
<PerformedBy>TEST</PerformedBy>
<WorkDoneCode>13000</WorkDoneCode>
<WorkDoneDesc>TSB / ISA - Installed</WorkDoneDesc>
<ZoneBasedTravel>False</ZoneBasedTravel>
<PartNum>Labor</PartNum>
<PartDescr>TSB/ISA</PartDescr>
<Qty>1</Qty>
</Part>
</Parts>
Требуемый результат получен :
7
Редактировать : В комментарии ОП пояснил, что он ищет sum
Duration
всех part
-й, чей PartNumber
равен "Труду".
Следующее выражение XPath дает эту сумму :
sum(/*/*[PartNum='Labor']/Duration)