Mit StringRegExp Umlaute in HTML Code finden

  • Hallo zusammen,

    ich habe ein kleines Problem mit StringRegExp und Umlauten.

    so sieht der der HTML Code aus

    Code
    <dd class="heads-of-sales">Anhänger</dd><dt>

    Ich lese dann Anhänger wie folgt aus

    [autoit]

    $Result = StringRegExp($source, '<dd class="heads-of-sales">(.*?)</dd><dt>',1)
    _arraydisplay($Result)

    [/autoit]

    Jetzt wird mir zwar ein Array angezeigt aber die Umlaute werden durch andere Zeichen ersetzt.
    Was muß ich wo mitgeben damit mir auch die Umlaute angezeigt werden?


    EDIT:

    Habe gerade festgestellt, wenn ich

    Code
    http://translation.autoit.de/onlinehilfe/libfunctions/_INetGetSource.htm

    mit _InetGetSource auslese wir mir die Zeile mit "Falls True werden die Daten im Stringformat zurückgegeben, sonst im Binärformat"
    richtig ausgelesen.

    Code
    </b> Falls True werden die Daten im Stringformat zurückgegeben, sonst im Binärformat.</td>

    Aber die Zeile mit Rückgabewert wird wie folgt ausgelesen

    Code
    <h2>R&uuml;ckgabewert</h2>

    Danke und Gruß
    Norman

    2 Mal editiert, zuletzt von Norman Bates (23. April 2013 um 15:59)

  • Ich kann dein Problem nicht nachvollziehen...
    Folgendes Skript gibt mir die gewünschte Ausgabe:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $sSource = '<dd class="heads-of-sales">Anhänger</dd><dt>'
    Global $asResult

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $asResult = StringRegExp($sSource, '<dd class="heads-of-sales">(.*?)</dd><dt>', 1)
    _ArrayDisplay($asResult)

    [/autoit]
  • Du musst nun noch die Umlaute ersetzen, welche dort ausgegeben werden...

    &uuml; = ü
    &Uuml; = Ü
    &auml; = ä
    &Auml; = Ä
    &ouml; = ö
    &Ouml; = Ö
    &szlig; = ß

    So werden Umlaute in HTML angegeben...
    Aber es gibt auch die Möglichkeit sie als "ä, ö, ü oder ß" anzugeben.
    --> Will ich aber nicht weiter drauf eingehen.

    Sie werden nun korrekt ausgegeben (wie im Quelltext niedergeschrieben).
    Nun kannst du damit arbeiten! :)

  • Hi,

    so löse ich immer eventuelle Quelltext-Abfragen:

    Spoiler anzeigen
    [autoit]

    #include <inet.au3>
    #include <string.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $src = _INetGetSource("http://translation.autoit.de/onlinehilfe/libfunctions/_INetGetSource.htm")
    $src = _StringBetween($src, '<p class="funcdesc">','<br>')

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"", $src[0])

    [/autoit]

    Hier werden die Umlaute korrekt wieder gegeben.

    Gruß
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.