2017-03-22 26 views
0

我有以下問題。我想總結所有的xml逗號值。在xsl中總計xml逗號值

<Root> 
<Haus> 
    <Teile> 
    <Position Nummer="1"> 
     <Benennung>Das Haus 1</Benennung> 
     <Gesamtpreis>27.65</Gesamtpreis> 
     <Basispreis>24.04</Basispreis> 
    </Position> 
    <Position Nummer="2"> 
     <Benennung>Das Haus 2</Benennung> 
     <Gesamtpreis>27.65</Gesamtpreis> 
     <Basispreis>24.04</Basispreis> 
    </Position> 
    <Position Nummer="3"> 
     <Benennung>Das Haus 3</Benennung> 
     <Gesamtpreis>133.29</Gesamtpreis> 
     <Basispreis>115.9</Basispreis> 
    </Position> 
    </Teile> 
    <Schutt> 
    <Position Nummer="1"> 
     <Benennung>Das Haus 1</Benennung> 
     <Gesamtpreis>27.65</Gesamtpreis> 
     <Basispreis>24.04</Basispreis> 
    </Position> 
    <Position Nummer="2"> 
     <Benennung>Das Haus 2</Benennung> 
     <Gesamtpreis>27.65</Gesamtpreis> 
     <Basispreis>24.04</Basispreis> 
    </Position> 
    <Position Nummer="3"> 
     <Benennung>Das Haus 3</Benennung> 
     <Gesamtpreis>133.29</Gesamtpreis> 
     <Basispreis>115.9</Basispreis> 
    </Position> 
    </Schutt> 
</Haus> 
</Root> 

現在我想在XSL所有值總結出來的只有TeileGesamtpreis

<xsl:for-each select="/Root/Haus/Teile/Position[Basispreis != Gesamtpreis or (Listenpreis*Anzahl)!= Gesamtpreis]"> 
    ??? 
</xsl:for-each> 

我知道我需要format-number(Gesamtpreis, '#.##0,00', 'european')用於顯示一個逗號值。但是,我怎樣才能總結所有的值,並得到結果?

回答

1
check following Code:- 

<xsl:template match="Root"> 
<xsl:variable name="ajeet_1" select="sum(//Teile/Position/Gesamtpreis)"/> 
<xsl:value-of select="format-number($ajeet_1, '#.##0,00', 'euro')"/> 
</xsl:template> 
1
check following Code:- 

<xsl:template match="Root"> 
<xsl:variable name="ajeet_1" select="sum(//Teile/Position/Gesamtpreis)"/> 
<xsl:value-of select="format-number($ajeet_1, '#.##0,00', 'euro')"/> 
</xsl:template> 
+0

這適用於所有 'Gesamtpreis'。我更新了這個問題。我只需要'Teile'。 –

+0

+2

儘管這段代碼片段是受歡迎的,並且可能會提供一些幫助,但如果它包含* how *和* why *解釋](// meta.stackexchange.com/q/114762)解決問題。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –

1
Check difference between 'Gesamtpreis' and 'Basispreis':- 

<xsl:template match="Root"> 
<xsl:variable name="ajeet_1" select="sum(//Teile/Position/Gesamtpreis)"/> 
<xsl:variable name="ajeet_2" select="sum(//Teile/Position/Basispreis)"/> 
<xsl:variable name="ajeet_3" select="$ajeet_1 - $ajeet_2"/> 
<xsl:value-of select="format-number($ajeet_3, '#.##0,00', 'euro')"/> 
</xsl:template> 
+0

你是最棒的。 –

+0

感謝Anton Styopin –