Как удалить ВСЕ HTML-теги с помощью MSHTML Parser в VB6?
Как удалить ВСЕ HTML-теги с помощью MSHTML Parser в VB6?
3 ответа
Это адаптировано из кода в CodeGuru. Большое Большое спасибо оригинальному автору: http://www.codeguru.com/vb/vb_internet/html/article.php/c4815
Проверьте исходный источник, если вам нужно скачать HTML из Интернета. Например:
Set objDocument = objMSHTML.createDocumentFromUrl("http://google.com", vbNullString)
Мне не нужно загружать заглушку HTML из Интернета - у меня уже была заглушка в памяти. Таким образом, первоисточник не совсем подходит для меня. Моя главная цель состоит в том, чтобы квалифицированный парсер DOM убрал для меня HTML из контента, созданного пользователем. Кто-то скажет: "Почему бы просто не использовать RegEx для удаления HTML-кода?" Удачи с этим!
Добавить ссылку на: Microsoft HTML Object Library
Это тот же HTML-парсер, который запускает Internet Explorer (IE) - пусть начинается хеклинг. Ну, черт возьми...
Вот код, который я использовал:
Dim objDocument As MSHTML.HTMLDocument
Set objDocument = New MSHTML.HTMLDocument
'NOTE: txtSource is an instance of a simple TextBox object
objDocument.body.innerHTML = "<p>Hello World!</p> <p>Hello Jason!</p> <br/>Hello Bob!"
txtSource.Text = objDocument.body.innerText
Результирующий текст в tx tSource.Text - это содержимое моего пользователя, лишенное всего HTML. Чистота и ремонтопригодность - нет пути Ктулху для меня.
В одну сторону:
Function strip(html As String) As String
With CreateObject("htmlfile")
.Open
.write html
.Close
strip = .body.outerText
End With
End Function
За
?strip("<strong>hello <i>wor<u>ld</u>!</strong><foo> 1234")
hello world! 1234
Public Function ParseHtml(ByVal str As String) As String
Dim Ret As String, TagOpenend As Boolean, TagClosed As Boolean
Dim n As Long, sChar As String
For n = 1 To Len(str)
sChar = Mid(str, n, 1)
Select Case sChar
Case "<"
TagOpenend = True
Case ">"
TagClosed = True
TagOpenend = False
Case Else
If TagOpenend = False Then
Ret = Ret & sChar
End If
End Select
Next
ParseHtml = Ret
End Function
Это простая функция, которую я использую для собственного использования.использовать окно отладки
?ParseHtml( "
тестовое задание
Я надеюсь, что это поможет без использования внешних библиотек