пустой результат при разборе HTML с использованием HAP - PullRequest
0 голосов
/ 18 июня 2020

У меня проблема с перебором всех строк таблицы и извлечением данных из каждой строки.

У меня есть следующая таблица:

<table class="table tbl_author">
   <tbody>
      <tr class="tra funded">
         <td class="item_id">485xx</td>
         <td class="max-price" data-hint="outbid by smaller">85$</td>
      </tr>
      <tr class="tra funded">
         <td class="item_id">485xx</td>
         <td class="max-price" data-hint="outbid by smaller">85$</td>
      </tr>
      <tr class="tra funded">
         <td class="item_id">485xx</td>
         <td class="max-price" data-hint="outbid by smaller">85$</td>
      </tr>
   </tbody>
</table>

Я пытался выбрать таблицу и повторять под каждым tr и каждым td внутри tr, но я не получил результатов.

var rows = doc.DocumentNode.SelectNodes("//*[@class='table tbl_author']//tr")
foreach(var row in rows)
{
   var itemId = row.SelectSingleNode("//*[@class='item_id']");
   var maxPrice = row.SelectSingleNode("//*[@class='max_price']");
}

Я получил результат, используя для l oop, но я думаю, что это не лучший подход

for (int i = 0; i < 100; i++) {
 var itemId= doc.DocumentNode.SelectSingleNode($ "/html[1]/body[1]/div[2]/table[1]/tbody[1]/tr[{i}]/td[2]");
 var maxPrice= doc.DocumentNode.SelectSingleNode($ "/html[1]/body[1]/div[2]/table[1]/tbody[1]/tr[{i}]/td[3]");

 if (itemId!= null && maxPrice!= null) {
  var ttr = bideBy.GetAttributeValue("data-hint", "");
  if (!string.IsNullOrEmpty(ttr)) {
   Console.WriteLine(itemId.InnerText + " " + ttr);
  }
 }

}
...