Eliminar todas las etiquetas html con Html Agility Pack

Tengo una cadena html como esta:

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

Deseo quitar todas las etiquetas html para que la cadena resultante se convierta en:

foo bar baz

De otra publicación aquí en SO, se me ocurrió esta función (que usa el paquete de agilidad HTML):

  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

Lamentablemente, esto no devuelve lo que esperaba, sino que da:

bazbarfoo

Por favor, ¿dónde me equivoco? ¿Es este el mejor enfoque?

Saludos y feliz codificación!

ACTUALIZACIÓN: por la respuesta a continuación, se me ocurrió esta función, podría ser útil para otros:

  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

Respuestas a la pregunta(5)

Su respuesta a la pregunta