XSLT - 查找父tr标记中的子td标记的数量

时间:2014-06-16 10:11:38

标签: html xslt xpath tags

我有一个父tr标记,想知道其下的td标记总数。换句话说,有没有办法找出父标签下的确切数量的子标签。

2 个答案:

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