2012-07-09 76 views
2

範圍 我想解析this page。對於不熟悉葡萄牙語的人,此頁面包含某個課程(大學課程)中的所有主題,按「學期」分組。HTMLAgilityPack XPath表達式不提取所有節點

因此,每當您看到類似於「7ºPeríodoIdeal」的內容時,您可以理解爲「第7學期的主題 」。

問題我正在使用XPath表達式從包含這些錶行的表中獲取所有錶行。

XPath Used : //table[@cellspacing=2]//tr 

C# Statement : htmlMap.DocumentNode.SelectNodes("//table[@cellspacing=2]//tr"); 

本C#聲明接收到的HtmlNodeCollection,只包含錶行節點,直到一個與此文字EAD0648 Gerência de Produtos/Serviços e Mercados,在一個與5º Período Ideal之後。

這個XPath「有效」,但我得到了所有tr's(因爲它是預期的),而這不是我想要的。

//tr 

爲什麼XPath不檢索此節點之後的所有節點?

是否有任何檢索節點數量的上限? 我錯過了什麼?

在此先感謝

+0

你可以將它縮小到最小的html文檔,但仍然可以重現問題,然後將該文檔添加到問題的文本中?該鏈接可能會有所幫助,但如果該鏈接不再有效,那麼對於堆棧溢出的訪問者來說,這對今後幾年的訪問者來說並不會有什麼好處。 – 2012-07-09 17:45:22

+0

HTML很大=/ 我可能會將它發佈到pastebin – 2012-07-09 17:46:09

+0

您不能將它縮小爲仍然存在問題的較小樣本嗎? – 2012-07-09 17:47:26

回答

3

我在過去遇到這樣的,如果表中沒有得到很好的形成,然後再像這樣出現的問題。我花了一個很快的頁面的HTML看看,看到什麼看起來像一個可能的問題,在2785行有</tr>然後沒有開幕<tr>行2796有另一個</tr>

我承認我沒有做深入驗證檢查,但只是看着它我無法匹配開頭<tr>。我立即檢查了這一點,因爲正如我所提到的,我遇到了具有格式不正確的頁面的確切問題。

+0

謝謝Mr McGver – 2012-07-09 17:55:35

+0

很高興。 – 2012-07-09 17:58:51

相關問題