Страдал от реальной головной боли на данном этапе в пятницу! Я пытаюсь добавить HtmlNode к другому использованию InsertAfter (). Я вижу refChild узел с идентификатором навигационных цепочек, когда я rpint он к консоли, но продолжаю получать следующую ошибку:
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 ("//отделение [@id ='breadcrumb']") к консоли и видит узел на экране. Какие-либо идеи о том, где я иду не так, как надо здесь?
Спасибо, Denis
При беглом изучении источника кажется, что InsertAfter
хочет, чтобы refChild
был ] direct дочерний узел, на котором вы вызываете InsertAfter
. Поскольку вы выполняете поиск по всей оси потомков (с //
) для вашего узла div
, возможно, что фактический узел, который вы передаете как refChild
, не является прямой дочерний элемент из HtmlWrapper
.
Попробуйте вытащить HtmlWrapper.SelectSingleNode ("// div [@ id = 'breadcrumb']")
в переменную, а затем вызвать InsertAfter
на его ParentNode
.