XML频率计数

时间:2012-07-23 19:56:31

标签: xml xslt xpath count frequency

<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>

我有一个上面的XML文件,我需要计算<cpu_time>个条目的次数 在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>

2 个答案:

答案 0 :(得分:1)

尝试一下

的内容
<xsl:value-of select="count(result[number(cpu_time) &lt; 3600])" />

答案 1 :(得分: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的单个根元素,并且您的节点名称不匹配(我添加了一个名为“root”的根元素,并将所有子元素的“结果”用于测试。)