2016-08-16 12 views
1

私のスタイルシートでは、XMLを調べ、オブジェクトのリストを見て、各オブジェクトの価格値の合計を返します。下にexampledさ:xsl:sumの式から特定の値を除外します

<xsl:variable name="ExampleTotal"> 
     <xsl:value-of select="sum(/ListOfObjects/Object/PriceOfObject)"/> 
    </xsl:variable> 

そして、これが正常に動作し、 私の問題は、私はの合計を必要としないことを、リスト内のこれらのオブジェクトのすべての 1、であることの価値が含まれている唯一のものですtrue

例XML:

<ListOfObjects> 
    <Object> 
    <PriceOfObject>35.00</PriceOfObject> 
    <PriceNeeded>true</PriceNeeded> 
    <OtherData>example</OtherData> 
    </Object> 
    <Object> 
    <PriceOfObject>36.00</PriceOfObject> 
    <PriceNeeded>true</PriceNeeded> 
    <OtherData>example</OtherData> 
    </Object> 
    <Object> 
    <PriceOfObject>35.00</PriceOfObject> 
    <PriceNeeded>true</PriceNeeded> 
    <OtherData>example</OtherData> 
    </Object> 
    <Object> 
    <PriceOfObject>33.00</PriceOfObject> 
    <PriceNeeded>false</PriceNeeded> 
    <OtherData>example</OtherData> 
</Object> 
</ListOfObjects> 

が、それはオブジェクトのリストに目を通すだけのように真の価値を持っているものの合計を合計することは可能でしょうか?

答えて

1

これを試してみてください:マイケル・ケイによって示唆されているように上記のコード

<xsl:variable name="ExampleTotal"> 
    <xsl:value-of select="sum(/ListOfObjects/Object[PriceNeeded='true']/PriceOfObject)"/> 
</xsl:variable> 

は変わっ、

<xsl:variable name="ExampleTotal" 
    select="sum(/ListOfO‌​bjects/Object[PriceNe‌​eded='true']/PriceOfO‌​bject)"/> 
+0

アメージング、ありがとうございました! – JakeGilesPhillips

+1

さらに、 ''になります。数字の和を結果ツリーのフラグメントに変換するための冗長コードは、ここでは必要ありません。なぜなら、使用するとほぼ確実に数字に変換されるからです。 –

関連する問題