Xslt:如何对前面的元素求和
我有一个问题要总结具体的要素, 我想用特定的值对前面的所有元素求和 对于这个xml,我想得到类似的东西 我想对LinkedQuantity=-14之前的所有LinkedQuantity元素求和Xslt:如何对前面的元素求和,xslt,Xslt,我有一个问题要总结具体的要素, 我想用特定的值对前面的所有元素求和 对于这个xml,我想得到类似的东西 我想对LinkedQuantity=-14之前的所有LinkedQuantity元素求和 <xsl:value-of select="sum(//*[local-name()='LinkedQuantity'][preceding::*][text() != -14])"/> 但它也将-14之后的值相加 <product> <TransactionL
<xsl:value-of select="sum(//*[local-name()='LinkedQuantity'][preceding::*][text() != -14])"/>
但它也将-14之后的值相加
<product>
<TransactionLink ReasonCode="Subtract">
<LinkedSequenceNumber>10</LinkedSequenceNumber>
<LinkedQuantity>-2.000000</LinkedQuantity>
</TransactionLink>
<TransactionLink ReasonCode="Subtract">
<LinkedSequenceNumber>10</LinkedSequenceNumber>
<LinkedQuantity>-4.000000</LinkedQuantity>
</TransactionLink>
<TransactionLink ReasonCode="Subtract">
<LinkedSequenceNumber>10</LinkedSequenceNumber>
**<LinkedQuantity>-14.000000</LinkedQuantity>**
</TransactionLink>
<TransactionLink ReasonCode="Subtract">
<LinkedSequenceNumber>10</LinkedSequenceNumber>
<LinkedQuantity>-12.000000</LinkedQuantity>
</TransactionLink>
<TransactionLink ReasonCode="Subtract">
<LinkedSequenceNumber>10</LinkedSequenceNumber>
<LinkedQuantity>-7.000000</LinkedQuantity>
</TransactionLink>
10
-2.000000
10
-4.000000
10
**-14.000000**
10
-12.000000
10
-7.000000
我想对LinkedQuantity=-14之前的所有LinkedQuantity元素求和
从字面上看,这意味着:
<xsl:value-of select="sum(//LinkedQuantity[.=-14]/preceding::LinkedQuantity)"/>
但是,在给定的示例中,编写以下内容会更有效:
<xsl:value-of select="sum(/product/TransactionLink[LinkedQuantity=-14]/preceding-sibling::TransactionLink/LinkedQuantity)"/>