2015-01-04 52 views
5

我正在尝试使用HtmlAgilityPack来查找网站中的元素。 我的问题是这样的:HtmlAgilityPack.HtmlNode没有定义为SelectNodes

我创建了一个Windows 8的通用的应用程序(C#)

随着的NuGet经理,我说:

using System.Net.Http; 
using HtmlAgilityPack; 

然后我做:

string htmlPage; 
using (var client = new HttpClient()) 
{ 
    htmlPage = await client.GetStringAsync("http://www.domain.de/"); 
} 

HtmlDocument myDocument = new HtmlDocument(); 
myDocument.LoadHtml(htmlPage); 

//this line results an error @ "SelectNodes" 
var metaTags = myDocument.DocumentNode.SelectNodes("//meta"); 

但视觉工作室说:

Error 1 'HtmlAgilityPack.HtmlNode' does not contain a definition for 'SelectNodes' 

我已经搜索了这个问题,但所有的网站刚刚解决了另一个代码表示“DocumentElement”代替“DocumentNode”的问题。

你有什么提示吗?

谢谢!

回答

8

是的,SelectNodes在WP8上不可用,但您可以使用;

var metaTags = myDocument.DocumentNode.Descendants("meta"); 

改为。

+0

非常感谢!问题解决了! :-) – 2015-01-04 14:11:12

+3

好的,但你如何做更复杂的XPATH查询? – BrainSlugs83 2016-10-12 22:06:58

+1

要执行的 doc.DocumentNode.SelectNodes( “// DIV [@ itemprop = 'softwareVersion']”) 使用 doc.DocumentNode.Descendants( “DIV”)。等效凡(p值=>点.GetAttributeValue(“itemprop”,“”)==“softwareVersion”) – 2017-05-04 14:03:52