XSL每个总计数



我试图在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>

使用存储主文档

<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包含不同于主输入文档的文档中的节点。它假设您的路径是正确的,如图所示,您必须显示一个输入样本才能告诉我们。

尝试:

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

只需使用

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

以上表示

给我所有/webpage/results/cars的所有子元素的计数,其类型是$car_types 中包含的类型之一

阅读更多关于XPath通用相等运算符的语义此处和这里。

相关内容

  • 没有找到相关文章

最新更新