2011-04-18 5 views
3

VB5에서 MSHTML Parser를 사용하여 모든 HTML 태그를 제거하는 방법은 무엇입니까?VB6에서 MSHTML Parser를 사용하여 모든 HTML 태그를 제거하는 방법은 무엇입니까?

+0

태그를 제거한 후 남겨 둘 점은 무엇입니까? 모든 태그 내의 모든 텍스트? 개행 문자는 어떨까요? – Bob77

+0

저는 개 글자에 대해 확실히 우려하고 있습니다. MSHTML은


을 개행 (\ n)으로 대체합니까? 아니면 여기에 우리 자신의 장치에 맡기고 있습니까? –

+0

약간의 테스트가 끝나면 ... 출력물에 개보수가있는 것처럼 보이므로 조금 덜 걱정합니다. 누군가가 위대하다는 것을 확인할 수 있다면. –

답변

1

이것은 CodeGuru의 코드 오버에서 수정되었습니다. 많은 많은 원저자에게 감사 : http://www.codeguru.com/vb/vb_internet/html/article.php/c4815

웹에서 HTML을 다운로드해야하는 경우 원래 소스를 확인하십시오. 예 :

Set objDocument = objMSHTML.createDocumentFromUrl("http://google.com", vbNullString) 

웹에서 HTML 스텁을 다운로드 할 필요가 없습니다. 이미 메모리에 스텁이 있습니다. 그래서 원래의 소스는 제게 잘 적용되지 않았습니다. 내 주요 목표는 정규화 된 DOM Parser를 사용하여 사용자 생성 콘텐츠에서 HTML을 제거하는 것입니다. 일부는 "HTML을 제거하기 위해 RegEx를 사용하지 않는 이유는 무엇입니까?" 좋은 결과 내길 바랄 게!

가에 대한 참조 추가 : 마이크로 소프트 HTML 개체 라이브러리

이 인터넷 익스플로러 (IE)를 실행하는 동일한 HTML 파서입니다 - 야유가 시작하자. txtSource.Text 모든 HTML을 박탈 내 사용자의 컨텐츠입니다

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 

결과 텍스트 에 : 음, 야유 멀리 ...

저는 여기에 사용되는 코드입니다. 깨끗하고 유지 보수가 용이합니다. Cthulhu Way가 필요하지 않습니다.

0
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 ("< DIV> 테스트 </DIV>")

테스트 나는이 외부 라이브러리

에게
0

한 가지 방법을 사용하지 않고 도움이되기를 바랍니다

:

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 
관련 문제