使用Html敏捷包剥离所有html标签

我有一个这样的HTML字符串:
<html><body><p>foo <a href='http://www.example.com'>bar</a> baz</p></body></html>

我希望剥离所有html标签,以便生成的字符串变成:

foo bar baz

从另一个帖子在这里,我已经提出了这个功能(使用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

不幸的是,这不会返回我的期望,而是给出:

bazbarfoo

请问我哪里错了 – 这是最好的方法吗?

问候和快乐的编码!

更新:通过以下答案,我想出了这个功能,可能对别人有用:

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

解决方法

为什么不返回htmldoc.DocumentNode.InnerText而不是删除所有的非文本节点?它应该给你你想要的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


html5中section的用法
span标签和p标签的区别
jsp文件和html文件的区别是什么
span标签和div的区别
html颜色代码表大全
span标签的作用是什么
dhtml的主要组成部分包括什么
html编辑器哪个软件好用
span标签属于什么样式标签
html文件乱码怎么办
html怎么读取json文件
html文件打开乱码怎么恢复原状
html怎么链接外部css
html文件怎么保存到本地
html怎么链接css文件
html和css怎么连接
html和css怎么关联
html文件怎么保存到一个站点
html文件怎么写
html出现乱码怎么解决