[英]XSLT add number to variable
我有XSLT,其中我有變量(DPH5和DPH22)。 在開始時,變量為空。 之后,我添加此變量的總和為DPH。 這是我的XML的一部分:
<TeloTR>
<TYP_CASTKY>DP</TYP_CASTKY>
<PROCENTO_DANE>21.0</PROCENTO_DANE>
<CASTKA>100.720</CASTKA>
</TeloTR>
<TeloTR>
<TYP_CASTKY>DP</TYP_CASTKY>
<PROCENTO_DANE>15.0</PROCENTO_DANE>
<CASTKA>562.720</CASTKA>
</TeloTR>
<TeloTR>
<TYP_CASTKY>DP</TYP_CASTKY>
<PROCENTO_DANE>15.0</PROCENTO_DANE>
<CASTKA>66375.720</CASTKA>
</TeloTR>
<TeloTR>
<TYP_CASTKY>DP</TYP_CASTKY>
<PROCENTO_DANE>15.0</PROCENTO_DANE>
<CASTKA>845.720</CASTKA>
</TeloTR>
這是我的變量:
<xsl:variable name="DPH5" select="0" />
<xsl:variable name="DPH22" select="0" />
這是我的代碼的一部分:
<xsl:for-each select="TeloTR">
<xsl:if test="TYP_CASTKY='DP'">
<xsl:if test="PROCENTO_DANE='15.0'">
<xsl:variable name="DPH5" select="$DPH5 + number(@CASTKA) " />
</xsl:if>
<xsl:if test="PROCENTO_DANE='21.0'">
<xsl:variable name="DPH22" select="$DPH22 + number(@CASTKA) " />
</xsl:if>
</xsl:if>
</xsl:for-each>
但是我有這個錯誤:
Error:XSLTProcessor::transformToXml() [<a href='xsltprocessor.transformtoxml'>
xsltprocessor.transformtoxml</a>]: XSLT-variable: Redefinition of variable 'DPH5'.
您有任何想法如何將值添加到變量中? 謝謝
如注釋中所述,在XSLT中,變量是“不可變的”,一旦設置便無法更改。
但是,您可以通過使用sum
函數來解決與特定條件匹配的所有節點(或屬性),以解決您的特定問題。
試試這兩個變量聲明
<xsl:variable name="DPH5" select="sum(TeloTR[TYP_CASTKY='DP'][PROCENTO_DANE = 15.0]/CASTKA) " />
<xsl:variable name="DPH22" select="sum(TeloTR[TYP_CASTKY='DP'][PROCENTO_DANE = 22.0]/CASTKA) " />
請注意, CASTKA
是XML中的元素,因此您不應使用表示屬性的@
前綴。
另外,為避免重復,您可以這樣做
<xsl:variable name="TeloTR" select="TeloTR[TYP_CASTKY='DP']" />
<xsl:variable name="DPH5" select="sum($TeloTR[PROCENTO_DANE = 15.0]/CASTKA) " />
<xsl:variable name="DPH22" select="sum($TeloTR[PROCENTO_DANE = 21.0]/CASTKA) " />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.