如何从同一个xpath表达式中的两个表中获取行?

时间:2018-05-09 09:09:46

标签: c# xpath html-agility-pack

我正在使用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>

我想从tbody div中包含的leftright两个表中获取main container中包含的所有行。

我试过了:

HtmlNode main = doc.DocumentNode.SelectSingleNode("//div[@class='main container']");

HtmlNodeCollection rows = main.SelectNodes("//table//tr");

但这将返回文档的所有行,我只需要两个表的行。

1 个答案:

答案 0 :(得分:1)

试试这个:

main.SelectNodes("/table//tr");

当使用两个斜杠启动SelectNode时,它会从根文档而不是当前路径重新开始搜索。我相信这是你的问题。