Strippen aller HTML-Tags mit Html Agility Pack

Ich habe eine HTML-Zeichenfolge wie folgt:

<html><body><p>foo <a href='http://www.example.com'>bar</a> baz</p></body></html>

Ich möchte alle HTML-Tags entfernen, sodass die resultierende Zeichenfolge wie folgt aussieht:

foo bar baz

Von einem anderen Beitrag hier bei SO habe ich mir diese Funktion ausgedacht (die das Html Agility Pack verwendet):

  Public Shared Function stripTags(ByVal html As String) As String
    Dim plain As String = String.Empty
    Dim htmldoc As New HtmlAgilityPack.HtmlDocument

    htmldoc.LoadHtml(html)
    Dim invalidNodes As HtmlAgilityPack.HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("//html|//body|//p|//a")

    If Not htmldoc Is Nothing Then
      For Each node In invalidNodes
        node.ParentNode.RemoveChild(node, True)
      Next
    End If

    Return htmldoc.DocumentNode.WriteContentTo
  End Function

Leider gibt dies nicht das zurück, was ich erwarte, sondern es gibt:

bazbarfoo

Bitte, wo gehe ich falsch - und ist das der beste Ansatz?

Regards und Happy Coding!

UPDATE: Durch die Antwort unten bin ich auf diese Funktion gekommen, die für andere nützlich sein könnte:

  Public Shared Function stripTags(ByVal html As String) As String
    Dim htmldoc As New HtmlAgilityPack.HtmlDocument
    htmldoc.LoadHtml(html.Replace("</p>", "</p>" & New String(Environment.NewLine, 2)).Replace("<br/>", Environment.NewLine))
    Return htmldoc.DocumentNode.InnerText
  End Function

Antworten auf die Frage(10)

Ihre Antwort auf die Frage