Avatar billede loukas Mester
17. november 2002 - 12:52 Der er 6 kommentarer og
1 løsning

æ ø å ?!?!

Jeg har fundet den her færdife kode, til at parse <TITLE> og META DESCIOTION fra en anden hjemmeside.
Det virker fint, bare ikke når der kommer et æ, ø eller å
de bliver erstattet med ?

Koden:

<%
' HTML Parser
'
'    Has ability to retrieve a document from another web site and parse meta data
'    such as Title, Description, and Keywords.

Class clsHTMLParser
' ------------------------------------------------------------------------------
    Private mStrHTML
    Private mObjRegExp
    Private mObjMatches
    Private mObjMatch
    Public Title
    Public Keywords
    Public Description
' ------------------------------------------------------------------------------
    Public Property Let HTML(ByRef pStrHTML)
        mStrHTML = pStrHTML

        Set mObjRegExp = New RegExp
        mObjRegExp.IgnoreCase = True

        Call ParseTitle()
        Call ParseDescription()
        Call ParseKeywords()

        Set mObjMatch = Nothing
        Set mObjMatches = Nothing
        Set mObjRegExp = Nothing

    End Property
' ------------------------------------------------------------------------------
    Public Property Get HTML()
        HTML = mStrHTML
    End Property
' ------------------------------------------------------------------------------
    Private Sub ParseTitle()
        Title = ""
        mObjRegExp.Pattern = "<TITLE>([^<]*)</TITLE>"
        Set mObjMatches = mObjRegExp.Execute(mStrHTML)
        If mObjMatches.Count = 0 Then Exit Sub
        Title = mObjMatches.item(0).Value
        Title = Replace(Title, "<TITLE>", "", 1, -1, vbTextCompare)
        Title = Replace(Title, "</TITLE>", "", 1, -1, vbTextCompare)
    End Sub
' ------------------------------------------------------------------------------
    Private Sub ParseDescription()
        Description = ""
        mObjRegExp.Pattern = "<META[^>]+(name=""description""|content=""([^""]*)"")[^>]+(name=""description""|content=""([^""]*)"")[^>]*>"
        Set mObjMatches = mObjRegExp.Execute(mStrHTML)
        If mObjMatches.Count = 0 Then Exit Sub
        Description = mObjMatches.item(0).Value
        Description = Mid(Description, InStr(1, Description, "content=""", vbTextCompare) + 9)
        Description = Mid(Description, 1, InStr(1, Description, """", vbTextCompare) -1)
    End Sub
' ------------------------------------------------------------------------------
    Private Sub ParseKeywords()
        Keywords = ""
        mObjRegExp.Pattern = "<META[^>]+(name=""keywords""|content=""([^""]*)"")[^>]+(name=""keywords""|content=""([^""]*)"")[^>]*>"
        Set mObjMatches = mObjRegExp.Execute(mStrHTML)
        If mObjMatches.Count = 0 Then Exit Sub
        Keywords = mObjMatches.item(0).Value
        Keywords = Mid(Keywords, InStr(1, Keywords, "content=""", vbTextCompare) + 9)
        Keywords = Mid(Keywords, 1, InStr(1, Keywords, """", vbTextCompare) -1)
    End Sub
' ------------------------------------------------------------------------------
    Public Function GetURL(ByRef pStrURL)

        Dim lObjSpider
        Dim strText

        If pStrURL = "" Then Exit Function

        On Error Resume Next

        ' Different variations of XML objects
        'Set lObjSpider = Server.CreateObject ("MSXML2.XMLHTTP.3.0")
        'Set lObjSpider = Server.CreateObject ("MSXML2.ServerXMLHTTP")
        Set lObjSpider = Server.CreateObject ("Microsoft.XMLHTTP")
       

        ' Could not create Internet Control
        If Err Then
            GetURL = "Error: " & Err.Description
            Exit Function
        End If
       
        On Error Goto 0

        With lObjSpider
            .Open "GET", pStrURL, False, "", ""
            .Send
            GetURL = .ResponseText
        End With
        Set LobjSpider = Nothing

        HTML = GetURL
       
    End Function
' ------------------------------------------------------------------------------
End Class
' ------------------------------------------------------------------------------
%>
Avatar billede pfp Nybegynder
17. november 2002 - 13:01 #1
Hvad så hvis du sætter følgende ind i toppen:
Session.LCID = 1030
Avatar billede loukas Mester
17. november 2002 - 13:22 #2
Det virker desværre ikke :-[
Avatar billede hossein Nybegynder
17. november 2002 - 18:42 #3
Det kan måske hjælpe hvis det går galt med XML objektet:
http://www.w3schools.com/xml/xml_encoding.asp
Avatar billede kovalt Nybegynder
17. november 2002 - 19:04 #4
du kunne evt. i dine trim-fuktioner erstatte evt. æ,ø og å med en kombination af bogstaver eks "wyxw" og så substituere tilbage når du læser fra DB... ved godt der er lidt af en krejler løsning :-)
Avatar billede kovalt Nybegynder
17. november 2002 - 19:04 #5
men virker i princippet fint nok
Avatar billede loukas Mester
23. november 2002 - 23:02 #6
Jeg kan ikke. ... få det til at virke - snøft ;-(
Håber en ekspert kan hjælpe mig !!

Min Kode:
<%
Session.LCID = 1030
' ------------------------------------------------------------------------------
Class clsHTMLParser
' ------------------------------------------------------------------------------
    Private mStrHTML
    Private mObjRegExp
    Private mObjMatches
    Private mObjMatch
    Public Title
    Public Keywords
    Public Description
' ------------------------------------------------------------------------------
    Public Property Let HTML(ByRef pStrHTML)
        mStrHTML = pStrHTML

        Set mObjRegExp = New RegExp
        mObjRegExp.IgnoreCase = True

        Call ParseTitle()
        Call ParseDescription()
        Call ParseKeywords()

        Set mObjMatch = Nothing
        Set mObjMatches = Nothing
        Set mObjRegExp = Nothing

    End Property
' ------------------------------------------------------------------------------
    Public Property Get HTML()
        HTML = mStrHTML
        HTML = Replace(HTML,"æ","&aelig;")
        HTML = Replace(HTML,"Æ","&AElig;")
        HTML = Replace(HTML,"ø","&oslash;")
        HTML = Replace(HTML,"Ø","&Oslash;")
        HTML = Replace(HTML,"å","&aring;")
        HTML = Replace(HTML,"Å","&Aring;")
    End Property
' ------------------------------------------------------------------------------
    Private Sub ParseTitle()
        Title = ""
        mObjRegExp.Pattern = "<TITLE>([^<]*)</TITLE>"
        Set mObjMatches = mObjRegExp.Execute(mStrHTML)
        If mObjMatches.Count = 0 Then Exit Sub
        Title = mObjMatches.item(0).Value
        Title = Replace(Title, "<TITLE>", "", 1, -1, vbTextCompare)
        Title = Replace(Title, "</TITLE>", "", 1, -1, vbTextCompare)
        Title = Replace(Title,"æ","&aelig;")
        Title = Replace(Title,"Æ","&AElig;")
        Title = Replace(Title,"ø","&oslash;")
        Title = Replace(Title,"Ø","&Oslash;")
        Title = Replace(Title,"å","&aring;")
        Title = Replace(Title,"Å","&Aring;")
    End Sub
' ------------------------------------------------------------------------------
    Private Sub ParseDescription()
        Description = ""
        mObjRegExp.Pattern = "<META[^>]+(name=""description""|content=""([^""]*)"")[^>]+(name=""description""|content=""([^""]*)"")[^>]*>"
        Set mObjMatches = mObjRegExp.Execute(mStrHTML)
        If mObjMatches.Count = 0 Then Exit Sub
        Description = mObjMatches.item(0).Value
        Description = Mid(Description, InStr(1, Description, "content=""", vbTextCompare) + 9)
        Description = Mid(Description, 1, InStr(1, Description, """", vbTextCompare) -1)
       
        Description = Replace(Description,"æ","&aelig;")
        Description = Replace(Description,"Æ","&AElig;")
        Description = Replace(Description,"ø","&oslash;")
        Description = Replace(Description,"Ø","&Oslash;")
        Description = Replace(Description,"å","&aring;")
        Description = Replace(Description,"Å","&Aring;")
    End Sub
' ------------------------------------------------------------------------------
    Private Sub ParseKeywords()
        Keywords = ""
        mObjRegExp.Pattern = "<META[^>]+(name=""keywords""|content=""([^""]*)"")[^>]+(name=""keywords""|content=""([^""]*)"")[^>]*>"
        Set mObjMatches = mObjRegExp.Execute(mStrHTML)
        If mObjMatches.Count = 0 Then Exit Sub
        Keywords = mObjMatches.item(0).Value
        Keywords = Mid(Keywords, InStr(1, Keywords, "content=""", vbTextCompare) + 9)
        Keywords = Mid(Keywords, 1, InStr(1, Keywords, """", vbTextCompare) -1)
    End Sub
' ------------------------------------------------------------------------------
    Public Function GetURL(ByRef pStrURL)

        Dim lObjSpider
        Dim strText

        If pStrURL = "" Then Exit Function

        On Error Resume Next

        ' Different variations of XML objects
        'Set lObjSpider = Server.CreateObject ("MSXML2.XMLHTTP.3.0")
        'Set lObjSpider = Server.CreateObject ("MSXML2.ServerXMLHTTP")
        Set lObjSpider = Server.CreateObject ("Microsoft.XMLHTTP")
       

        ' Could not create Internet Control
        If Err Then
            GetURL = "Error: " & Err.Description
            Exit Function
        End If
       
On Error Resume Next

        With lObjSpider
            .Open "GET", pStrURL, False, "", ""
            .Send
            GetURL = .ResponseText
        End With
        Set LobjSpider = Nothing

        HTML = GetURL
       
    End Function
' ------------------------------------------------------------------------------
End Class
' ------------------------------------------------------------------------------
%>
Avatar billede loukas Mester
23. november 2002 - 23:30 #7
Jeg tror den er gået lidt i stå her !!
Jeg lukker og opretter nyt ??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester