5
星期五在這個階段真的很頭痛!我試圖使用InsertAfter()將HtmlNode添加到另一個。我可以看到麪包屑ID的refChild節點當我把它rpint到控制檯,但不斷收到以下錯誤:我應該如何使用HTMLAgilityPack AppendNode?
System.ArgumentOutOfRangeException: Node "<div id="breadcrumb"></div>" was not f
ound in the collection
Parameter name: node
at HtmlAgilityPack.HtmlNodeCollection.get_Item(HtmlNode node)
at HtmlAgilityPack.HtmlNode.InsertAfter(HtmlNode newChild, HtmlNode refChild)
at MyHome.Tasks.Tasks.DownloadandStoreContent(KeyValueP
air`2 urlPair, String filePath, HtmlNode HtmlWrapper) in C:\Users\denis\Document
s\Visual Studio 2008\Websites\MyHomeV2\MyHome.Tasks\Tasks.cs:line 81
at MyHome.Tasks.Tasks.GenerateContent(String scrape
sSwitch, String filePath) in C:\Users\denis\Documents\Visual Studio 2008\Website
s\MyHomeV2\MyHome.Tasks\Tasks.cs:line 27
at MyHome.Tasks.Program.Main(String[] args) in C:\Users\denis\Documents\Visua
l Studio 2008\Websites\MyHomeV2\MyHome.Tasks\Program.cs:line 87
我的代碼是:
HtmlWrapper.InsertAfter(ContentNode, HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']"));
正如提到的我已經都打印出來HtmlWrapper和HtmlWrapper.SelectSingleNode(「// div [@ id ='breadcrumb']」)到控制檯,並可以看到屏幕上的節點。關於我要去哪兒的任何想法都是錯誤的?
感謝, 丹尼斯
起初並不奏效,但是我將選擇器提升了幾個級別,並最終指向HtmlWrapper節點的一個子節點。你怎麼知道它需要一個特定的孩子,而不是一個死者? –
@Denis:通過google找到HtmlNodeCollection的InsertAfter,注意到被索引到的成員名爲'_childNodes',猜到:) – AakashM
這裏的技巧是執行以下操作:nodeToInstertBefore.ParentNode.InsertBefore(newNode,nodeToInsertBefore)不是保證清楚,但它的作品:) – Philippe