我想使用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']");
由于
答案 0 :(得分:0)
使用starts-with
进行前缀检查(电话号码是否从零开始?),您可以使用contains
检查邮件地址中的@
。
//td[@class = 'even' and (starts-with(normalize-space(.), '0') or contains(., '@'))]
XPath 1.0不支持正则表达式。你最好在C#中的XPath之外进行字符串操作和验证。