我有一个父tr
标记,想知道其下的td
标记总数。换句话说,有没有办法找出父标签下的确切数量的子标签。
答案 0 :(得分:0)
您需要使用count
count(/tr[CURRENT_POSITION]/td)
假设我们最初是tr
count(/tr[1]/td)
您可以使用position()
编写另一种方式,而您正在进行循环
count(/tr[position()]/td)
答案 1 :(得分:0)
假设给定输入xml:
<?xml version="1.0" encoding="UTF-8"?>
<tr>
<td>aaa</td>
<td colspan="2">bbb</td>
<td colspan="2">ccc</td>
</tr>
和样式表如:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="tr">
<xsl:copy>
<xsl:attribute name="totalcells">
<xsl:value-of select="count(td[not(@colspan)]) + sum(td/@colspan)"/>
</xsl:attribute>
<xsl:copy-of select="."/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
我们有这样的输出:
<tr totalcells="5">
<tr>
<td>aaa</td>
<td colspan="2">bbb</td>
<td colspan="2">ccc</td>
</tr>
</tr>