2012-07-11 110 views
0

我想解析包含许多表的PHP页面。现在当我尝试选择这些表时,集合返回null?Html Agility Pack对于Nodecollection返回Null

Dim web As New HtmlAgilityPack.HtmlWeb() 
    Dim htmlDoc As HtmlAgilityPack.HtmlDocument = web.Load("URL") 
    Dim html As String 

    Dim tabletag As HtmlNodeCollection = htmlDoc.DocumentNode.SelectNodes("//table") 
    Dim tableNode As HtmlNode = htmlDoc.DocumentNode.SelectSingleNode("//table[@summary='List of services']") 

    If Not tabletag Is Nothing Then 
    html = tableNode.InnerText 

    End If 

这个页面肯定有一些表,只是不明白为什么它返回null?

回答

0

我在浏览器中加载了您的URL并查看了源代码,实际上没有找到任何表格。错误的网址?

+0

这很奇怪。这是链接再次 http://www.scswis.com/index.php?option=com_content&task=view&id=7644&Itemid=489&bereNextPageId=ServiceList_action.php&action=movePaging&offset=10 – 2012-07-11 20:06:56

+0

不,没有HTML

元素。在页面上的哪个位置可以找到表格?你是否正在与浏览器中的页面交互,导致它加载另一个包含表格的页面?或者,与页面进行交互,导致它将包含表格的表格加载到DOM中?请记住,敏捷软件包只会解析你给它的东西,而它并没有做到你的浏览器和JavaScript可能做的那些魔术。 – Darryl2012-07-11 20:56:23

+0

好吧,我意识到出了什么问题!为了接收该表格,我浏览了一个表单并单击“提交”按钮,然后重定向到该页面。显然,直接使用该链接不会导致访问该表。虽然这对我来说很棘手。我不知道我应该怎么做!使用httpwebrequest也许?但后来我能够使用htmlagilitypack,因为我需要传递一个URL web.load? – 2012-07-12 10:11:42