簡體   English   中英

vb.net HtmlAgilityPack在div之后插入字符串

[英]vb.net HtmlAgilityPack Insert string after div

我想在div結束后直接插入一些自己的html。 這個div里面還有其他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)

每次我運行該代碼時都會收到異常Node "<div class="profile_topfriends"></div>" was not found in the collection

XmlNodeInsertAfter()類似,您需要在引用節點的公共父節點上調用此方法並插入節點。 嘗試這樣的事情:

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

為我工作得很好。 這是我在C#中做的一個簡單的測試(翻譯成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())

<span>出現在控制台中的<div>之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM