从span获取HTMLagilitypack的数据

时间:2013-12-17 09:43:24

标签: c# html asp.net xpath html-agility-pack

我想使用HtmlAgilityPack从网站上获取一些数据。 数据存储在具有属性class="addresscolor__"的对象中。但问题是有多个这个名字的类。我想知道有没有办法从具有该值的特定类中获取此数据,使用“Start with”或“Contained ..”或类似的东西?

HTML代码:

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

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

我使用这段代码:

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

另一件事是,这个类包含span标记,并且使用这些代码我会捕获整个<p>标记值,但我只想在“Mobile”span标记中使用数字。

1 个答案:

答案 0 :(得分: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