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