Я подозреваю, что единственный способ сделать это - создать HtmlElement
, а затем скопировать атрибуты и внутренний HTML-код из HtmlNode
.
Вот метод расширения для этого; он принимает ссылку на экземпляр System.Windows.Forms.HtmlDocument
для создания нового HtmlElement
:
<System.Runtime.CompilerServices.Extension> _
Public Shared Function ToHtmlElement(node As HtmlNode, doc As System.Windows.Forms.HtmlDocument) As HtmlElement
Dim element = doc.CreateElement(node.Name)
For Each attribute As HtmlAttribute In node.Attributes
element.SetAttribute(attribute.Name, attribute.Value)
Next
element.InnerHtml = node.InnerHtml
Return element
End Function
И использовать его вы могли бы так:
Dim browser As New WebBrowser()
browser.Navigate("about::blank")
Dim Tags As HtmlNodeCollection = docNode.SelectNodes(strXpath)
Dim ListResult As New List(Of HtmlElement)
For Each Tag As HtmlNode In Tags
ListResult.Add(Tag.ToHtmlElement(browser.Document))
Next
Return Nothing
Но обратите внимание, я не слишком знаком с VB.NET, я сначала создал примеры кода для C #, а затем перевел их на VB, NET.