如何从同一 xpath 表达式中的两个 table 获取行?
How to get rows from two table in the same xpath expression?
我正在使用 HtmlAgilityPack
。假设我有以下情况:
<div class="main container">
<div class="left">
<table>
<tbody>
<tr />
<tr />
<tr />
</tbody>
</table>
</div>
<div class="right">
<table>
<tbody>
<tr />
<tr />
<tr />
</tbody>
</table>
</div>
我想从 left
和 right
的两个 table 中获取 tbody
中包含的所有行,包含在 main container
div.
我试过了:
HtmlNode main = doc.DocumentNode.SelectSingleNode("//div[@class='main container']");
HtmlNodeCollection rows = main.SelectNodes("//table//tr");
但这会return文档的所有行,我只需要table.
这两个行
试试这个:
main.SelectNodes("/table//tr");
当使用两个斜杠启动 SelectNode 时,它会从根文档而不是当前路径重新开始搜索。我相信这是你的问题。
我正在使用 HtmlAgilityPack
。假设我有以下情况:
<div class="main container">
<div class="left">
<table>
<tbody>
<tr />
<tr />
<tr />
</tbody>
</table>
</div>
<div class="right">
<table>
<tbody>
<tr />
<tr />
<tr />
</tbody>
</table>
</div>
我想从 left
和 right
的两个 table 中获取 tbody
中包含的所有行,包含在 main container
div.
我试过了:
HtmlNode main = doc.DocumentNode.SelectSingleNode("//div[@class='main container']");
HtmlNodeCollection rows = main.SelectNodes("//table//tr");
但这会return文档的所有行,我只需要table.
这两个行试试这个:
main.SelectNodes("/table//tr");
当使用两个斜杠启动 SelectNode 时,它会从根文档而不是当前路径重新开始搜索。我相信这是你的问题。