1
<result name="test">
   <cpu_time>  45346.23 </cpu_time>
   <max_mem>      1104 MB</max_mem>
</result>
<result name="error_test">
   <cpu_time>   5300.80 </cpu_time>
   <max_mem>      1059 MB</max_mem>
</result>

<cpu_time>上記の XML ファイルがあり、XSLT で 3600 未満の値を持つエントリの回数をカウントする必要があります。これまでの XSLT は次のとおりです。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" encoding="iso-8859-1" indent="no"/>
  <xsl:template match="/">
    <xsl:value-of select="count(result/cpu_time) &lt; 3600" />
  </xsl:template>
</xsl:stylesheet>
4

2 に答える 2

1

の線に沿って何かを試してください

<xsl:value-of select="count(result[number(cpu_time) &lt; 3600])" />
于 2012-07-23T20:02:58.420 に答える
1

これは私にとってはうまくいきます(www.xslfiddle.netで)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" encoding="iso-8859-1" indent="no"/>
    <xsl:template match="root">
        <xsl:value-of select="count(result/cpu_time[. &lt; 3600])" />
    </xsl:template>
</xsl:stylesheet>

XML には 1 つのルート要素が必要であり、ノード名が一致していないことに注意してください (「ルート」という名前のルート要素を追加し、すべての子要素をテスト用に「結果」にしました)。

于 2012-07-23T20:16:43.003 に答える