2009-11-29 5 views
2

Je souhaite utiliser XSLT pour calculer la valeur de somme de quantitéXSL pour produire la valeur de sommation pour chaque attribut

l'entrée est:

<FileHeader> 
    <Item amount="500" />     
    <Item amount="600" />     
    <Item amount="400" />     
    <Item amount="700" />     
    <Item amount="100" />     
    <Item amount="900" />     
    <Item amount="1000" />     
    <Item amount="200" />     
    <Item amount="700" />     
</FileHeader> 

la sortie doit être:

<Result> 
    <FileSummary TotalAmount="5100"> 
</Result> 

Merci,

+0

Il est une faute de frappe. http://meta.stackexchange.com/q/196985/232821 –

Répondre

4
<Result> 
    <FileSummary TotalAmount="{sum(/FileHeader/Item/@amount)}" /> 
</Result> 

Te sted. Correction d'une faute de frappe. Cela devrait fonctionner.

+0

cela a fonctionné merci :) juste avec erreur typo: "Item" au lieu de "Iteam" – ala

+0

aucun problème :) J'ai trouvé l'information ici: http: // msdn .microsoft.com/fr-us/library/ms256160.aspx –

1

Essayez ceci:

<Result> 
    <FileSummary> 
     <xsl:attribute name="TotalAmount"> 
     <xsl:value-of select="sum(//FileHeader/Item/@amount)" /> 
     </xsl:attribute> 
    </FileSummary> 
</Result> 
+1

Notez que l'opérateur '//' doit être évité aussi longtemps que possible. Ses performances sont mauvaises, d'autant plus que les documents d'entrée sont plus volumineux. – Tomalak

Questions connexes