2012-07-11 105 views
0

我试图提取div标签内的内容idjob_title1在html页面中。我正在使用htmlagilitypack来获取数据。这里是我的代码从html页面提取内容

 var obj = new HtmlWeb(); 
     var document = obj.Load("url of website "); 

     var bold = document.DocumentNode.SelectNodes("//div[@class='job_title1']"); 

     foreach (var i in document.DocumentNode.SelectNodes("//div[@class='job_title1']")) 
     { 
      Response.Write(i.InnerHtml); 
     } 

当我试图运行此代码时,我在foreach中发现错误,说对象引用未设置为对象的实例。请帮我解决这个问题。

+0

问:这是什么语言?你的标签说的是C#...但是... – paulsm4 2012-07-11 05:41:43

+0

ANS:@ paulsm4:看纯c#:) – 2012-07-11 05:42:38

+0

他正在使用C#,C#4.0支持延迟类型。我个人从来不喜欢那个,除了复杂的linq结果 – 2012-07-11 05:42:44

回答

0

检查if null这样的:

var nodes = document.DocumentNode.SelectNodes("//div[@class='job_title1']"); 

if(nodes != null) 
    foreach (var i in document.DocumentNode.SelectNodes("//div[@class='job_title1']" 
    ... 

编辑:使用\"代替'

+0

是的,节点是空的。我对此很陌生,所以请告诉我为什么值不会在节点内获取。如何获得该div标签内的值。 – Maddy 2012-07-11 06:18:04

+0

你可以添加你的HTML样本吗? – Ria 2012-07-11 06:20:46

+0

我想要下面的html的div标签内容。

MS CRM 4.0, MS CRM 2011, PHP, SQl server, My SQL, SSRS

MCA (Computers), Amity Business School

Last Active: 15th Jun 2012
Resume ID: 23961482
s3infotech
\t Annual Salary: 2.40 lacs
\t Exp: 2Years
\t Preferred Location: Anywhere
\t
Maddy 2012-07-11 06:39:44

1

你说: “与ID job_title1 div标签”,不应该的XPath :

document.DocumentNode.SelectNodes("//div[@id='job_title1']")