1

Javaで同じパスの要素数を取得するにはどうすればよいですか? すなわち:

<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 に答える