如何使用Xpath从嵌套表中获取行数?

时间:2019-07-08 22:32:55

标签: javascript html-table

我有一个嵌套表,要在其中嵌套第二个tbody中的行数。

主表的Xpath和第二个表主体的Xpath是:

//*[@id="MainTable"]/table

//*[@id='MainTable']/table/tbody/tr/td/table[2]/tbody   

在Chrome控制台中使用以下代码进行测试,到目前为止,我已经成功地完成了第二步。

function getElementByXpath(path) {
  return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
console.log( getElementByXpath("//*[@id='MainTable']/table/tbody/tr/td/table[2]/tbody") );

但是我陷入了如何获取第二个躯干的行数的问题。

有人可以帮助实现这一点,或者获得更好的方法吗?谢谢你的帮助。

这是HTML结构:

    <table>
        <tbody>
            <tr>
                <td id = "main">
                    <table id = "table_x">...</table>
                    <div>...</div>
                    <iframe>...<iframe>
                    <table class="table2_class" summary="MySummary">
                        <thead>...</thead>
                        <tbody>
                            <tr class="a1" >
                                <td class="td_class">1</td>
                                <td class="td_class">N</td>
                                <td class="td_class_1">
                                    <div dir="" class="zzz">
                                        <div class="div_class">
                                            <a href="...">Some text</a>
                                        </div>
                                    </div>
                                </td>
                            </tr>
                            <tr class="b1" >
                                <td class="td_class">4</td>
                                <td class="td_class">W</td>
                                <td class="td_class_1">
                                    <div dir="" class="zzz">
                                        <div class="div_class">
                                            <a href="...">Some text</a>
                                        </div>
                                    </div>
                                </td>
                            </tr>   
                            <tr class="a1" >
                                <td class="td_class">7</td>
                                <td class="td_class">R</td>
                                <td class="td_class_1">
                                    <div dir="" class="zzz">
                                        <div class="div_class">
                                            <a href="...">Some text</a>
                                        </div>
                                    </div>
                                </td>
                            </tr>       
                    </tbody>
                </table>
                </td>
            </tr>
        </tbody>            
    </table>

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。

此代码似乎有效:

getElementByXpath("//*[@id='MainTable']/table/tbody/tr/td/table[2]/tbody").rows.length