vb.net HtmlAgilityPack Insérer une chaîne après div

.net html html-agility-pack vb.net

Question

J'essaie d'insérer une partie de mon propre code html directement après la fin d'une div. Cette div a d'autres div à l'intérieur.

    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)

Chaque fois que j'exécute ce code, une exception de type Node "<div class="profile_topfriends"></div>" was not found in the collection

Réponse acceptée

Semblable à InsertAfter() de XmlNode , vous devez appeler cette méthode sur le parent commun du nœud référencé et y insérer un nœud. Essayez quelque chose comme ça:

Dim NewHTML As HtmlNode = FriendDiv.ParentNode.InsertAfter(HtmlNode, FriendDiv)

A bien fonctionné pour moi. Voici un test simple que j'ai fait en C # (traduit en VB):

Dim NewHTML As HtmlNode = FriendDiv.ParentNode.InsertAfter(HtmlNode, FriendDiv)

Le <span> apparaît après <div> dans la console.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi