我想在div结束后直接插入一些自己的html.这个div里面还有其他div. Dim HtmlNode As HtmlNode = HtmlNode.CreateNode("span class=""label""Those were the friends/span") Dim FriendDiv = htmldoc.DocumentNode.SelectSingleNode("//
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)
每次运行该代码时,我都会收到异常节点“< div class =”profile_topfriends“>< / div>”没有在该系列中找到
与XmlNode
‘s InsertAfter()
类似,您需要在引用节点的公共父节点上调用此方法并插入节点.尝试这样的事情:
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>之后在控制台.