2013-12-17 5 views
0

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

HTML код:

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

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

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

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

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

ответ

1

Для нахождения этого пункта:

//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, также рассмотрите a node can have multiple classes and how to deal with that.

Смежные вопросы