2013-12-17 23 views
0

我想使用HtmlAgilityPack从网站捕捉一些数据。 数据存储在属性为class="addresscolor__"的对象中。但问题是这个名字有不止一个类。我想知道是否有任何方法从具有该值的特定类中获取这些数据,使用“Start with”或“Contained ..”或类似的东西?使用HTMLagilitypack从一个范围获取数据

HTML代码:

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

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

我用thhis代码:

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

的另一件事是,该类包含span标签,并用这些代码我赶上了整个<p>标签值,但我只需要在“移动”范围标签中输入一个号码。

回答

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