StringRegExpReplace will nicht, wie ich will

  • Hallo Ihr,

    auch mich schaft regEx mit einer eigentlich einfachen Situation - und das, obwohl ich dachte Regex verstanden zu haben. :(

    Mein Ziel:
    Ich möchte z. B. den Text '<Absatz ' löschen. Es gibt mehrere X-Beliebige Strings, die immer mit '<' beginnen, dann kommt ein String und ein Space. Dieser Teil soll im gesamten XML gelöscht werden.

    Hintergrund:
    Ich möchte eine XMl Datei in Werttyp und Werte in ein eigenes Array schreiben. Dabei ist es ein nicht ganz typisches XML, aber dennoch wellformed. Mit XML Versuchen aus dem Forum kam ich nicht weiter, da die TAGs anders erwartet wurden. Also möchte ich ein einfaches Texterkennungsscript schreiben und das XML für meine Zwecke verändern.

    Meine XML (Auszug):

    Code
    <Absatz AbsatzID="27" IP="127.0.0.1" WertID="" Wert2ID="" Wert3ID="" Wert4ID="false" Wert5ID="66.97"/> </Absatz>

    Einer meiner Versuche:

    Danke im Voraus,

    Seq

  • Hi.

    [autoit='Alt']

    StringRegExpReplace ($my_xml, "<\S", "") ;<= Hier soll es passieren - passiert aber nicht.

    [/autoit][autoit='Neu']

    $my_xml = StringRegExpReplace ($my_xml, "<\S*", "") ;<= 1. Es muss wieder in die Variable geschrieben werden, 2. Um alle Zeichen zu erwischen muss hinter dem S noch ein *

    [/autoit]

    Raus kommt bei mir dann: AbsatzID="27" IP="127.0.0.1" WertID="" Wert2ID="" Wert3ID="" Wert4ID="false" Wert5ID="66.97"/>

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • :wacko: ohman - was für ein Trottel bin ich denn....

    Okay, nun klappt es. Jetzt habe ich noch ein kleines anderes Problem, mit der Bitte um Hilfe:

    Wenn ich die XML Zeile

    Code
    $my_xml = '<Absatz AbsatzID="27" IP="127.0.0.1" WertID="12€" Wert2ID="" Wert3ID="" Wert4ID="false" Wert5ID="66.97"/> </Absatz>'

    nehme, dann ist das "€-Zeichen" richtig im Array.
    Nehme ich aber die XML Datei ansich, aus dem ich die Zeile oben kopiert habe, dann ist aus dem € ein "€" daraus geworden. Ich habe zwar kleine Hinweise auf Sonderzeichen gefunden, indem mit Replace alle möglichen Sonderzeichen Ersetzt wurden, hoffe aber auf eine leichtere Möglichkeit. Unter "ASCII" in der Hilfe bin ich nicht weitergekommen.

    Danke im Voraus,
    Seq

  • Bisher hatte ich nicht einmal ein FileOpen gemacht - sondern nur ein Fileread.

    Okay, habe alle Varianten, (1,2,4,...,128 ) ,mit FileOpen und dann FileRead versucht - ohne Erfolg.
    Ich habe mir das xml mit UEdit angeschaut. UE sagt, es ist en U8-DOS. Im HexViewer finde ich tatsächlich auch (nur bei dem €) 3 Byte für das € Zeichen: E2 82 AC. Alle anderen sind 1 Byte Zeichen.
    Wenn ich doch nur mehr Ahnung von Zeichenkodierungen hätte.

    Seq.