如何从同一 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>

我想从 leftright 的两个 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 时,它​​会从根文档而不是当前路径重新开始搜索。我相信这是你的问题。