Как получить строки из двух таблиц в одном выражении xpath? - PullRequest
0 голосов
/ 09 мая 2018

Я использую 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, из двух таблиц left и right, содержащихся в main container div.

Я пытался:

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

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

но это вернет все строки документа, мне нужны только строки двух таблиц.

1 Ответ

0 голосов
/ 09 мая 2018

Попробуйте это:

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

При запуске SelectNode с двумя слешами поиск начинается с корневого документа, а не с текущего пути. Я считаю, что это ваша проблема.

...