【问题标题】:Get a data with HTMLagilitypack from a table with same class使用 HTMLagilitypack 从具有相同类的表中获取数据
【发布时间】:2014-02-10 18:40:38
【问题描述】:

我想使用 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']");

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2012-12-31
      • 2017-01-29
      • 1970-01-01
      相关资源
      最近更新 更多