我使用模板
<xsl:template name="myTemplate">
我需要计算其值为“ON”和“OFF”的级别节点的数量。
我想要的最终报告:
this file contains three "ON" values and two "OFF" values.
查看我的xml文件的一部分。
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml:stylesheet type='text/xsl' href='view.xsl'?>
<DOC>
<show>VIEW<show/>
<Entry>
<light>ae</light>
<level>ON</level>
</Entry>
<Entry>
<light>by</light>
<level>OFF</level>
</Entry>
<Entry>
<light>ac</light>
<level>OFF</level>
</Entry>
<Entry>
<light>pc</light>
<level>ON</level>
</Entry>
<Entry>
<light>tc</light>
<level>ON</level>
</Entry>
感谢您的帮助
答案 0 :(得分:1)
这些简单的XPath可以解决这个问题:
count(/*/*/level[. = 'ON'])
和
count(/*/*/level[. = 'OFF'])
要进行验证,请参阅此XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes" method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:text>The number of ON nodes is: </xsl:text>
<xsl:value-of select="count(/*/*/level[. = 'ON'])"/>
<xsl:text/>
<xsl:text>The number of OFF nodes is: </xsl:text>
<xsl:value-of select="count(/*/*/level[. = 'OFF'])"/>
</xsl:template>
</xsl:stylesheet>
...适用于提供的XML:
<DOC>
<show>VIEW</show>
<Entry>
<light>ae</light>
<level>ON</level>
</Entry>
<Entry>
<light>by</light>
<level>OFF</level>
</Entry>
<Entry>
<light>ac</light>
<level>OFF</level>
</Entry>
<Entry>
<light>pc</light>
<level>ON</level>
</Entry>
<Entry>
<light>nc</light>
<level>ON</level>
</Entry>
</DOC>
...生成了想要的结果:
The number of ON nodes is: 3
The number of OFF nodes is: 2
答案 1 :(得分:0)
问题是计算和拼出数字,即二,三。请在下面的XSLT和要给出的链接中使用的格式值列表中找到。
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="DOC">
<xsl:text>this file contains </xsl:text>
<xsl:number value="count(descendant::level[(.)='ON'])" format="w"/>
<xsl:text> "ON" values and </xsl:text>
<xsl:number value="count(descendant::level[(.)='OFF'])" format="w"/>
<xsl:text> "OFF" values.</xsl:text>
</xsl:template>
</xsl:stylesheet>
请参阅以下文档格式: http://www.w3.org/TR/xslt20/#element-number