在xsl中求和xml逗号值

时间:2017-03-22 12:31:24

标签: xml xslt

我有以下问题。我想总结所有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中加总Gesamtpreis Teile的所有值。

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

我知道我需要format-number(Gesamtpreis, '#.##0,00', 'european')来显示一个逗号值。但是,如何将所有值相加并获得结果呢?

3 个答案:

答案 0 :(得分: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 :(得分: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>

答案 2 :(得分: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>