Ich versuche, einige meiner eigenen html direkt nach dem Ende eines div einzufügen. Dieses Div hat ein anderes Div.
Dim HtmlNode As HtmlNode = HtmlNode.CreateNode("<span class=""label"">Those were the friends</span>")
Dim FriendDiv = htmldoc.DocumentNode.SelectSingleNode("//div[@class='profile_friends']")
Dim NewHTML As HtmlNode = htmldoc.DocumentNode.InsertAfter(HtmlNode, FriendDiv)
Jedes Mal, wenn ich diesen Code ausführe, erhalte ich eine Ausnahme. Node "<div class="profile_topfriends"></div>" was not found in the collection
Ähnlich wie XmlNode
InsertAfter()
müssen Sie diese Methode auf dem gemeinsamen Elternknoten des referenzierten Knotens und des einzufügenden Knotens aufrufen. Versuchen Sie etwas wie folgt:
Dim NewHTML As HtmlNode = FriendDiv.ParentNode.InsertAfter(HtmlNode, FriendDiv)
Hat gut für mich funktioniert. Hier ist ein einfacher Test, den ich in C # gemacht habe (übersetzt in VB):
Dim html = "<body><div></div></body>"
Dim doc As New HtmlDocument()
doc.LoadHtml(html)
Dim div = doc.DocumentNode.SelectSingleNode("//div")
Dim span = HtmlNode.CreateNode("<span class=""label"">Those were the friends</span>")
Dim newHtml = div.ParentNode.InsertAfter(span, div)
Console.WriteLine(XDocument.Parse(doc.DocumentNode.OuterHtml).ToString())
Das <span>
erscheint nach <div>
in der Konsole.