从 xsl:sum 方程中排除某些值
Excluding certain values from an xsl:sum equation
在我的样式表中,我有一个 xsl:variable 查看 XML,查看对象列表和 returns 每个对象的价格值总和,我的代码示例如下:
<xsl:variable name="ExampleTotal">
<xsl:value-of select="sum(/ListOfObjects/Object/PriceOfObject)"/>
</xsl:variable>
这很好用,
我的问题是我不需要列表中的 每个 个对象的总和,只需要那些包含 true[=23= 值的对象].
示例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>
是否可以查看对象列表并只对值为 true 的对象求和?
试试这个:
<xsl:variable name="ExampleTotal">
<xsl:value-of select="sum(/ListOfObjects/Object[PriceNeeded='true']/PriceOfObject)"/>
</xsl:variable>
根据 Michael Kay 的建议更改了以上代码,
<xsl:variable name="ExampleTotal"
select="sum(/ListOfObjects/Object[PriceNeeded='true']/PriceOfObject)"/>
在我的样式表中,我有一个 xsl:variable 查看 XML,查看对象列表和 returns 每个对象的价格值总和,我的代码示例如下:
<xsl:variable name="ExampleTotal">
<xsl:value-of select="sum(/ListOfObjects/Object/PriceOfObject)"/>
</xsl:variable>
这很好用, 我的问题是我不需要列表中的 每个 个对象的总和,只需要那些包含 true[=23= 值的对象].
示例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>
是否可以查看对象列表并只对值为 true 的对象求和?
试试这个:
<xsl:variable name="ExampleTotal">
<xsl:value-of select="sum(/ListOfObjects/Object[PriceNeeded='true']/PriceOfObject)"/>
</xsl:variable>
根据 Michael Kay 的建议更改了以上代码,
<xsl:variable name="ExampleTotal"
select="sum(/ListOfObjects/Object[PriceNeeded='true']/PriceOfObject)"/>