javascript - 如何使用 Xpath 从嵌套表中获取行数?
问题描述
我有下面的嵌套表,我想将第二个 tbody 中的行数存储在一个变量中。
主表的 Xpath 和第二个表 tbody 的 Xpath 是:
//*[@id="MainTable"]/table
//*[@id='MainTable']/table/tbody/tr/td/table[2]/tbody
使用下面的代码在 Chrome 控制台中进行测试,到目前为止,我已经成功地获得了第二个 tbody。
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") );
但是我被困在如何获取第二个 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>
解决方案
回答我自己的问题。
这段代码似乎有效:
getElementByXpath("//*[@id='MainTable']/table/tbody/tr/td/table[2]/tbody").rows.length
推荐阅读
- python - 制作美国热图?
- java - 硒脚本未运行
- python - Python 在不应该出现的情况下进入文件的下一行
- jpa - JPA 存储库在保存后检索自定义主键值
- java - Oracle 新的 Java 许可证,旧版本有何影响?
- kubernetes - tcp 连接从节点外工作,而 readinessProbe 失败
- node.js - Mongoose 唯一电子邮件地址验证
- hyperledger-fabric - 收到此错误 1.4.3 平台特定的结构二进制文件在下载超级账本结构样本时无法下载
- r - 比较两个字符串并查找差异并显示它们以便在 R 中轻松查看(类似于 git diff)?
- coq - 如何用索引定义列表