получить данные с помощью HTMLagilitypack из диапазона

asp.net c# html html-agility-pack xpath

Вопрос

Я хочу получить некоторые данные с веб-сайта, используя HtmlAgilityPack. Данные хранятся в объекте с class="addresscolor__" property class="addresscolor__" . Но проблема в том, что существует более одного класса с этим именем. И я хочу знать, есть ли способ получить эти данные из определенного класса с этим значением, используя «Начать с» или «Содержится ..» или что-то вроде этого?

Код HTML:

<p class="addresscolor__">
    <span>Phone:</span>
    33875362 ، 22356341
    <br />
</p>

<p class="addresscolor__">
    <span>mobile:</span>
    09125231827
    <br />
</p>

Я использую этот код:

HtmlNodeCollection nodes2 = doc.DocumentNode.SelectNodes("//p[@class='addresscolor__']");

Другое дело, что этот класс содержал тег span и с этими кодами я улавливал все значения тега <p> , но я хочу число только в теге span «Mobile».

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

Для нахождения этого абзаца:

//p[@class='addresscolor__' and contains(span, 'mobile:')]

Для ограничения его текстового узла (номер телефона):

//p[@class='addresscolor__' and contains(span, 'mobile:')]/text()

Для дальнейшего удаления пробелов:

normalize-space(//p[@class='addresscolor__' and contains(span, 'mobile:')]/text())

Для сопоставления классов HTML также учитывайте, что узел может иметь несколько классов и как с этим бороться .



Related

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