我试图在 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
如同XmlNode's InsertAfter() http://msdn.microsoft.com/en-us/library/system.xml.xmlnode.insertafter%28v=vs.110%29.aspx,需要在引用节点和待插入节点的公共父节点上调用该方法。尝试这样的事情:
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())
The <span>
出现在之后<div>
在控制台中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)