VB.net使用HTML字符串

时间:2015-11-17 19:47:53

标签: html vb.net textbox

我有一个支持HTML的电子邮件中的字符串,如下所示:

</div><span color="red">Hi how are you?!</span></div><table><tr><td>Company Information</td></tr></table>

等等[它是一长串的东西,但你明白了。有<div> .. <spans> .. <table>等等。

我想在文本框中显示格式为html的文本[将根据<table> .. <span>等格式化文本,同时删除{{的实际文本1}}等等来自文本框的文字。

我需要这样做,因为我收到页面错误,因为它将<span>等视为安全问题。

我目前阅读整篇文章并删除问题的方式如下:

<span>

我试图加入以下内容:

        If Not DsAds.Tables(0).Rows(0).Item(0) Is DBNull.Value Then
            Dim bodyInitial As String = DsAds.Tables(0).Rows(0).Item(0).ToString()

            Dim newbody As String = bodyInitial.Replace("<br>", vbNewLine)
            newbody = newbody.Replace("<b>", "")
            newbody = newbody.Replace("</b>", "")
            Bodylisting.Text = newbody
        End If

但是我遇到了HTTpUtility和字符串错误

问题:

所以我的问题是,有没有办法真正看到HTML格式并以这种方式填充文本框,或者我是否必须坚持使用Dim bodyInitial As String = DsAds.Tables(0).Rows(0).Item(0).ToString() Dim myEncodedString As String ' Encode the string. myEncodedString = bodyInitial.HttpUtility.HtmlEncode(bodyInitial) Dim myWriter As New StringWriter() ' Decode the encoded string. HttpUtility.HtmlDecode(bodyInitial, myWriter) 方法?

.Replace

1 个答案:

答案 0 :(得分:1)

我建议您调查HtmlAgilityPack。该库包含一个解析器,使您能够选择&#39; <span>标签。一旦你拥有它们,你可以剥离它们,或者获取InnerHtml并进行进一步处理。这是我如何用它做类似事情的一个例子。

    Private Shared Function StripHtml(html As String, xPath As String) As String
        Dim htmlDoc As New HtmlDocument()
        htmlDoc.LoadHtml(html)
        If xPath.Length > 0 Then
            Dim invalidNodes As HtmlNodeCollection = htmlDoc.DocumentNode.SelectNodes(xPath)
            If Not invalidNodes Is Nothing Then
                For Each node As HtmlNode In invalidNodes
                    node.ParentNode.RemoveChild(node, True)
                Next
            End If
        End If
        Return htmlDoc.DocumentNode.WriteContentTo()


    End Function