5

我有一个具有这种结构的 xml:

<emails>
<record>
    <field name="host"><![CDATA[yahoo]]></field>
    <field name="user"><![CDATA[abc]]></field>
</record>
<record>
    <field name="host"><![CDATA[gmail]]></field>
    <field name="user"><![CDATA[abc]]></field>
</record>
<record>
    <field name="host"><![CDATA[yahoo]]></field>
    <field name="user"><![CDATA[cdx]]></field>
</record>
</emails>

而且,我想计算主机 = 雅虎的记录数。我知道我需要使用 count(),但我不知道如何使用。

4

1 回答 1

10

假设您位于emails元素上,这可能是您想要的表达方式

<xsl:value-of select="count(record[field[@name='host']/text()='yahoo'])" />

例如,试试这个 XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/emails">
      <xsl:value-of select="count(record[field[@name='host']/text()='yahoo'])" />
   </xsl:template>
</xsl:stylesheet>

假设您的 XML 格式正确,并且您的 CDATA 标记格式正确,它应该输出 3。

于 2013-04-26T22:17:19.353 回答