Как удалить ВСЕ HTML-теги с помощью MSHTML Parser в VB6? - PullRequest
3 голосов
/ 18 апреля 2011

Как удалить ВСЕ HTML-теги с помощью MSHTML Parser в VB6?

Ответы [ 3 ]

1 голос
/ 19 апреля 2011

Это адаптировано из кода в CodeGuru. Большое Большое спасибо оригинальному автору: http://www.codeguru.com/vb/vb_internet/html/article.php/c4815

Проверьте исходный код, если вам нужно загрузить HTML из Интернета. E.g.:

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

Полученный текст в txtSource.Text является Содержанием моего Пользователя без всего HTML. Чистота и ремонтопригодность - мне нет пути Ктулху.

0 голосов
/ 13 мая 2014

В одну сторону:

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
0 голосов
/ 13 мая 2014
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

Это простая функция, которую я использую для собственного использования. use Окно отладки

? ParseHtml ("

test
")

test

Надеюсь, это поможет без использования внешних библиотек

...