1

如何在 Java 中获取相同路径的元素计数?IE:

<html>
    <head>
        <title>Title is here</title>
    </head>
    <body>
        <div id="div1">
            <table id="table1">
                <tr>
                    <td>1</td>
                    <td>2</td>
                    <td>3</td>
                </tr>
                <tr>
                    <td>11</td>
                    <td>22</td>
                    <td>33</td>
                </tr>
            </table>
            <table id="table2">
                <tr>
                    <td>111</td>
                    <td>222</td>
                    <td>333</td>
                </tr>
                <tr>
                    <td>1111</td>
                    <td>2222</td>
                    <td>3333</td>
                </tr>
            </table>
        </div>
        <div id="div2">
            <table id="table3">
                <tr>
                    <td>11111</td>
                </tr>
            </table>
        </div>
    </body>
</html>

在这个 html 中,

  • /html/head/title-> 返回"Title is here"
  • /html/body/div[1]/table[1]/tr[2]/td[3] -> 返回33
  • /html/body/div[2]/table/tr/td -> 返回11111

但是任何 tr 中都有 n 个 td,或者任何表中有 m 个 tr,或者文档中有很多表 .. 等等。

是否有任何表达式可以像 count("/html/body/div[1]/table[1]/tr[2]") 这样给我元素计数,它会返回 3?如果没有任何办法,我可以用 Java 编写自己的辅助方法吗?

4

1 回答 1

1

这个 XSLT:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:message>All of the td's: <xsl:value-of select="count(//td)"/> </xsl:message>
    <xsl:message>All of the td's in table1: <xsl:value-of select="count(//table[@id='table1']//td)"/></xsl:message>
  </xsl:template>
</xsl:stylesheet>

产生这个输出:

[xslt] 所有的 td:13

[xslt] table1 中的所有 td:6

于 2013-10-01T15:11:36.047 回答