XSL For-each总计数

时间:2016-05-18 15:07:24

标签: xml for-loop xslt web xslt-1.0

我试图在xsl中使用for-each返回总计数。例如,在一个实例中,有8个迭代或car_types,我想返回$ car_types [0] + $ car_types [1] + $ car_types [2] + $ car_types [3] ...的总计数。等等。有谁知道如何实现这一目标?谢谢!

<xsl:for-each select="$car_types">
    <xsl:variable name="counter" select="position()"/>
    <xsl:value-of select="count(/webpage/results/cars/*[type = $car_types[$counter]])" />
</xsl:for-each>

3 个答案:

答案 0 :(得分:1)

使用

存储主文档
<xsl:variable name="main-doc" select="/"/>

for-each之外,您可以使用

<xsl:for-each select="$cart_types">
  <xsl:value-of select="count($main-doc/webpage/results/car/*[type = current()])"/>
</xsl:for-each>

假设$cart_types包含与主要主输入文档不同的文档中的节点。并且假设您的路径如图所示是正确的,您将必须显示输入样本以允许我们告诉。

答案 1 :(得分:1)

尝试:

 <xsl:value-of select="count(/webpage/results/cars/*[type = $car_types])" />

答案 2 :(得分:1)

只需使用

count(/webpage/results/cars/*[type = $car_types])

以上表示

给我所有/webpage/results/cars的所有子元素的数量,其类型是$car_types

中包含的类型之一

了解更多有关XPath一般相等运算符 here here 的语义。