我的目的是转换成 普通的聊天记录 用vb来做一个小型的客服机器人  只要有文字就好!!!

解决方案 »

  1.   

    仅供参考Private Function StrFormat(s As String) As String
    On Error Resume Next
    Dim Buf As String
    Dim StrTemp As String
    Dim c As String
    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim L As Long
        Buf = s
        Do
            L = InStr(1, Buf, "<style", vbTextCompare)
            If L > 0 Then
                k = InStr(L + 6, Buf, "</style>", vbTextCompare)
                If k > 0 Then
                    Buf = Left(Buf, L - 1) + Mid(Buf, k + 8)
                Else
                    Buf = Left(Buf, L - 1)
                    Exit Do
                End If
            Else
                Exit Do
            End If
        Loop
        Do
            L = InStr(1, Buf, "<script", vbTextCompare)
            If L > 0 Then
                k = InStr(L + 7, Buf, "</script>", vbTextCompare)
                If k > 0 Then
                    Buf = Left(Buf, L - 1) + Mid(Buf, k + 9)
                Else
                    Buf = Left(Buf, L - 1)
                    Exit Do
                End If
            Else
                Exit Do
            End If
        Loop
        Buf = Replace(Buf, "&amp;", "&")
        Buf = Replace(Buf, "&quot;", Chr(34)) '替换成双引号
        Buf = Replace(Buf, "&lt;", "<")
        Buf = Replace(Buf, "&gt;", ">")
        Buf = Replace(Buf, " ", "")
        Buf = Replace(Buf, "<", " <")
        Buf = Replace(Buf, ">", "> ")
        Buf = Replace(Buf, "&nbsp;", "")
        Buf = Replace(Buf, Chr(26), " ")
        Buf = Replace(Buf, Chr(10), " ")
        Buf = Replace(Buf, Chr(9), " ")
        Buf = Replace(Buf, Chr(13), " ")
        Buf = LTrim(Buf)
        Buf = RTrim(Buf)
        '您可加入其他替换
        StrTemp = ""
        For i = 1 To Len(Buf)
            c = Mid(Buf, i, 1)
            Select Case c
                Case "<"
                    If i <> 1 Then
                        StrTemp = StrTemp & Mid(Buf, j + 1, i - j - 1)
                    End If
                Case ">"
                    j = i
            End Select
        Next i
        L = Len(StrTemp)
        Do
            Buf = Replace(StrTemp, "  ", " ")
            i = Len(Buf)
            If i = L Then Exit Do
            L = i
            StrTemp = Buf
        Loop
        StrFormat = Buf
    End Function
      

  2.   

    看了楼上的代码 明白了思路 多谢了 我还以为有现成函数  可以把这些文本直接转换掉 
    到头来还得自己做。