Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt:如何对前面的元素求和_Xslt - Fatal编程技术网

Xslt:如何对前面的元素求和

Xslt:如何对前面的元素求和,xslt,Xslt,我有一个问题要总结具体的要素, 我想用特定的值对前面的所有元素求和 对于这个xml,我想得到类似的东西 我想对LinkedQuantity=-14之前的所有LinkedQuantity元素求和 <xsl:value-of select="sum(//*[local-name()='LinkedQuantity'][preceding::*][text() != -14])"/> 但它也将-14之后的值相加 <product> <TransactionL

我有一个问题要总结具体的要素, 我想用特定的值对前面的所有元素求和 对于这个xml,我想得到类似的东西

我想对LinkedQuantity=-14之前的所有LinkedQuantity元素求和

    <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)"/>