我有一个支持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
答案 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