2017-04-14 26 views
1

我正在试验HtmlAgilityPack。目前我正在尝试从C#中的表中抓取数据。我将为此使用xPath,但有些东西似乎不正确..我测试了我的xPath查询,并且它实际上返回了正确的数据,但是我试图从C#中删除它,它返回null。 任何想法?HtmlAgilityPack SelectNodes空指针异常

class Program 
{ 
    static void Main(string[] args) 
    { 
     var hw = new HtmlWeb(); 
     HtmlDocument doc = hw.Load("http://www.filesignatures.net/index.php?page=all"); 

     foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//html//body//div[@id='container']//div[@id='body']//center//table//tbody//tr")) 
     { 
       Console.WriteLine(row.InnerText); 
     } 
     Console.ReadKey(); 
    } 
} 

回答

0

使用xPath很难维护或调试。您可以改用LINQ。

var hw = new HtmlWeb(); 
doc = hw.Load("http://www.filesignatures.net/index.php?page=all"); 

foreach (HtmlNode row in doc.DocumentNode.Descendants("table").FirstOrDefault(_ => _.Id.Equals("innerTable")).Descendants("tr")) 
{ 
    Console.WriteLine(row.InnerText); 
} 
Console.ReadKey(); 
+0

谢谢!不知道这一点。我将在未来使用LINQ –