从具有相同类的表中获取HTMLagilitypack的数据

时间:2014-02-10 08:49:17

标签: c# html xpath html-agility-pack

我想使用HTMLAgilityPack从网站上捕获数据。数据存储在一个表中,但问题是不只有一个TD标签具有相同的类,我不知道如何在一个单独的字段中过滤它们。

这就是我所说的:

<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">
    h.ghaletaki@gmail.com
</td>

在此HTML代码中,手机以“09xxxx”开头,电话号码以“0xxx”开头,您知道有关电子邮件的信息。我在C#中使用了以下代码,并且我捕获了所有混合的值。

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

由于

1 个答案:

答案 0 :(得分:0)

使用starts-with进行前缀检查(电话号码是否从零开始?),您可以使用contains检查邮件地址中的@

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

XPath 1.0不支持正则表达式。你最好在C#中的XPath之外进行字符串操作和验证。