'的HTMLDocument'不包含' GetElementById'

时间:2015-09-19 17:51:26

标签: c# html-agility-pack win-universal-app

我试图下载网页并尝试在Windows Universal Apps中提取一些特定数据。我正在使用 HtmlAgilityPack 我编写了以下代码段。但是我有一些错误。

    async public void LoadDataFromWeb()
    {
        var client = new HttpClient(); // Add: using System.Net.Http;
        var url = @"http://www.dsebd.org/displayCompany.php?name=NBL";
        string sourcePage = await client.GetStringAsync(url);
        var doc = new HtmlDocument();
        doc.LoadHtml(sourcePage);
        HtmlNode specificNode = doc.GetElementById("nodeId");
        HtmlNodeCollection nodesMatchingXPath = specificNode.DocumentNode.SelectNodes("x/path/nodes");
    }

错误:

  1. '的HTMLDocument'不包含' GetElementById'的定义没有扩展方法' GetElementById'接受类型' HtmlDocument'的第一个参数。可以找到(你错过了使用指令或汇编引用吗?)
  2. ' HtmlNode'不包含' DocumentNode'的定义没有扩展方法' DocumentNode'接受类型' HtmlNode'的第一个参数。可以找到(你错过了使用指令或汇编引用吗?)
  3. 可能是什么问题?

1 个答案:

答案 0 :(得分:0)

  

'HtmlDocument'不包含'GetElementById'的定义,并且没有可以找到接受类型'HtmlDocument'的第一个参数的扩展方法'GetElementById'(你是否缺少using指令或汇编引用?)

你应该使用         doc.GetElement b yId()而不是doc.GetElement B yId()

  

'HtmlNode'不包含'DocumentNode'的定义,并且没有扩展方法'DocumentNode'接受类型为'HtmlNode'的第一个参数'(您是否缺少using指令或汇编引用?)

我认为可以用

代替
      specificNode.OwnerDocument.DocumentNode

因为他们都返回HtmlNodeCollection

虽然不确定