Domainrobot Parser

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Domainrobot Parser

    Hallo Forum,

    ich habe eine Frage. Und zwar nutze ich eine HTTP-Schnittstelle für Domain Bestellungen. Das klappt soweit auch. Ich bekomme jedoch folgenden Code als Rückgabewert und möchte diesen gerne in ein Objekt oder Array legen. Gibts da eine einfache Möglichkeit das zu machen?

    Ein einfacher XML-Parser funktioniert wohl nicht, weil die einzelnen Werte ja mit "Doppelpunkt" getrennt sind. Würd mich über jede Hilfe oder Anregung freuen.

    Danke!

    Als Beispiel: hätte gerne:

    $array[system][user] = dieter
    $array[system][task] = 0301

    usw...


    <system>
    user: dieter
    task: 0301 (createhandle)
    status: N0301 [Handle-Antrag erfolgreich gestartet.]
    success_value: handle: 9237548

    </system>


    <parsed_request>
    user: dieter
    context: 4
    task: 0301
    action: createhandle
    type: PERSON
    fname: Hans
    lname: Schmidt
    address: Ringstra?e8
    address: 2.Stock
    city: Musterstadt
    pcode: 12345
    country: DE
    phone: +49-12-34567-8
    fax: +49-12-34567-8
    email: email@email.de
    protection: A
    nic_ref: DE
    reply_to: email@emil.de
    remarks: DiesistmeinerstesHandle!
    </parsed_request>


    <request>

    user: dieter
    context: 4
    task: 0301
    action: createhandle
    type: PERSON
    fname: Hans
    lname: Schmidt
    address: Ringstra?e8
    address: 2.Stock
    city: Musterstadt
    pcode: 12345
    country: DE
    phone: +49-12-34567-8
    fax: +49-12-34567-8
    email: email@email.de
    protection: A
    nic_ref: DE
    remarks: DiesistmeinerstesHandle!
    </request>

  • #2
    Wie sieht dein Ansatz aus? Wo klemmts?

    Oder möchtest du nach Projekthilfe verschoben werden?

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Wie sieht dein Ansatz aus? Wo klemmts?

      Oder möchtest du nach Projekthilfe verschoben werden?
      Naja, ich wollte eigentlich nur fragen, ob jemand mir eine Hilfestellung geben kann, wie ich das am Besten umsetzen kann.

      Danke...

      Kommentar


      • #4
        Dann paßt es besser in Brainstorming, aber nicht nochmal posten, warte bis du verschoben wirst.

        Ich würde mit RegEx rangehen ... ein Block ist

        <(.*)>(.*)</(BackRef1 oder .*)> (ungreedy)

        wobei die 1. Klammer (Bsp: system) der Key wird, die zweite Klammer wird mit dem Pattern

        (.*): (.*)\n

        auseinandergenommen und die Ergebnisse zu einem Array verbastelt, der wiederum der Wert zu oben gefundenem Key wird.

        Anderer Ansatz - DFA (Zustandsautomat); Startzustand z0, aktuelles Zeichen immer c:
        - z0, c!='<': einfach weiterlesen
        - z0, c='<': z1
        - z1, c!='>': z1, $key.=c
        - z1, c='>': z2
        - z2, c='<': z5
        - z2, c!=':': z2, $subkey.=c
        - z2, c=':': z3
        - z3, c=' ': z4
        - z4, c!='\n': z4, $subval.=c
        - z4, c='\n': z2
        - z5, c='/': z6
        - z6, c!='>': z6
        - z6, c='>': z0

        Hier fehlen noch einige Fehlerzustände und insgesamt würde das wohl ziemlich ausarten. Aber prinzipiell möglich, denn mit DFA ist alles möglich ...

        Kommentar

        Lädt...
        X