2009-11-29 55 views
2

我想使用XSLT計算量的總和值XSL以產生總和值針對每個屬性

輸入是:

<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> 

輸出應爲:

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

謝謝,

+0

這是一個錯字。 http://meta.stackexchange.com/q/196985/232821 – 2013-09-14 18:38:15

回答

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

Te STED。修正了錯字。這應該工作。

+0

它工作謝謝:)只是與錯字錯誤:「項目」,而不是「Iteam」 – ala 2009-11-29 12:28:39

+0

沒問題:)我在這裏找到的信息:http:// msdn .microsoft.com/en-us/library/ms256160.aspx – 2009-11-29 12:36:31

1

試試這個:

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

請注意,應儘可能避免使用「//」運算符。它的性能很差,特別是隨着輸入文件變大。 – Tomalak 2009-11-30 13:29:31