2014-02-10 1 views
0

Я хочу поймать данные с веб-сайта с помощью HTMLAgilityPack. Данные хранятся в таблице, но проблема в том, что существует более чем TD-тег с одним и тем же классом, и я не знаю, как их фильтровать в разделенных полях.Получить данные с помощью HTMLagilitypack из таблицы с тем же классом

вот что я говорю:

<td class="first even"> 
    Phone number: 
</td> 
<td class="even"> 
    06522366154 
</td> 

<td class="first even"> 
    Mobile Number: 
</td> 
<td class="even"> 
    09163524712 
</td> 

<td class="first even"> 
    Email: 
</td> 
<td class="even"> 
    [email protected] 
</td> 

в этом HTML-код, Mobile начинается с «09xxxx» и номер телефона телефон начинается с «0xXX», и вы знаете об электронной почте. Я использовал код ниже в C#, и я смешал все значения.

HtmlNodeCollection nodes1 = doc.DocumentNode.SelectNodes("//td[@class='even']"); 

Благодаря

ответ

0

Использование starts-with сделать проверку префикса (запустился номер телефона с нуля?), И вы можете проверить с помощью contains для @ в почтовом адресе.

//td[@class = 'even' and (starts-with(normalize-space(.), '0') or contains(., '@'))] 

XPath 1.0 не поддерживает регулярные выражения. Вы можете лучше выполнять манипуляции и проверку строк за пределами XPath в C#.

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