Vous avez un vrai mal de tête à ce stade un vendredi! J'essaie d'ajouter un HtmlNode à un autre en utilisant InsertAfter(). Je peux voir le nœud refChild avec id de mie de pain quand je rpint à la console, mais continue à obtenir l'erreur suivante:Comment utiliser 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
Mon code est:
HtmlWrapper.InsertAfter(ContentNode, HtmlWrapper.SelectSingleNode("//div[@id='breadcrumb']"));
Et comme mentionné je l'ai imprimé à la fois HtmlWrapper et HtmlWrapper.SelectSingleNode ("// div [@ id = 'breadcrumb']") à la console et peuvent voir le noeud sur l'écran. Des idées sur où je vais mal ici?
Merci, Denis
Cela n'a pas fonctionné au début mais j'ai amené mon sélecteur vers le haut de quelques niveaux et pointait finalement un enfant du noeud HtmlWrapper. Comment saviez-vous qu'il avait besoin d'un enfant spécifiquement et non d'un délinquant? –
@Denis: trouvé la source via un google pour HtmlNodeCollection InsertAfter, remarqué que le membre étant indexé dans a été appelé '_childNodes', deviné :) – AakashM
L'astuce ici est de faire ce qui suit: nodeToInstertBefore.ParentNode.InsertBefore (newNode, nodeToInsertBefore) Pas clair, mais ça marche :) – Philippe