【问题标题】:XSL For-each Total CountXSL For-each 总计数
【发布时间】:2016-09-15 04:10:35
【问题描述】:

我正在尝试在 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>

【问题讨论】:

  • 请显示输入示例和预期输出。

标签: xml for-loop xslt web xslt-1.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 包含来自不同于主要输入文档的文档的节点。它假设您的路径是正确的,如图所示,您必须显示一个输入样本以便我们判断。

【讨论】:

    【解决方案2】:

    试试:

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

    【讨论】:

      【解决方案3】:

      只需使用:

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

      以上意思:

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

      阅读更多关于 XPath 一般相等运算符 here 和 here 的语义。

      【讨论】:

        猜你喜欢
        • 2011-10-30
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-09
        • 1970-01-01
        • 2023-01-11
        相关资源
        最近更新 更多