Метод HtmlAgilityPack для возврата значения из строки в таблице данных столбца

c# html-agility-pack

Вопрос

Я хочу использовать Html Agility pack для извлечения внутренней информации html, основанной на ее относительном расстоянии от других td в данной строке таблицы.

Например, в приведенном ниже коде будет эффективная динамическая команда, которая будет принимать данные в первом теге td в качестве входных данных и предоставлять данные в третьем теге td в качестве вывода:

<tbody>
    <tr>
        <td>Smith</td>
        <td>Glasnevin</td>
        <td>11</td>
        <td>6.0</td>
    </tr>
    <tr>
        <td>Harty</td>
        <td>Blackrock</td>
        <td>11</td>
        <td>6.0</td>
    </tr>
    <tr>
        <td>Power</td>
        <td>Salthill</td>
        <td>0</td>
        <td>5.8</td>
    </tr>
</tbody>

Поэтому, если я дам «Смит» в качестве ввода, я хотел бы получить «11» в качестве вывода или если я дам «Power» в качестве ввода, я бы получил «0» в качестве вывода.

Принятый ответ

Вот пример:

HtmlDocument doc = new HtmlDocument();
//load your HTML to `doc`
var result = doc.DocumentNode
                .SelectSingleNode("//tr[td[1]='Power']/td[3]")
                .InnerText;
//at this point `result` hold value of 0

XPath означает выбрать узел <tr> имеющий первый дочерний узел <td> равный "Power" , а затем получить третий <td> из вышеупомянутого <tr> .



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow