Ankündigung

Einklappen
Keine Ankündigung bisher.

DomDocument für XML Vorlagen, ggf. auch einfacherer?

Einklappen

Neue Werbung 2019

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

  • DomDocument für XML Vorlagen, ggf. auch einfacherer?

    Hoi,
    ich verwende in meinen Skripten XML Files/Strings als Vorlage.
    Zum Beispiel sieht Die Vorlage für Login so ähnlich aus:
    Code:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <request xmlns="http://platzhalter.de/global/1.0">
     <login>
      <user></user>
      <password></password>
     </login>
    </request>
    Während der Laufzeit werden nun die leeren Elemente User und Password befüllt und dann als XML String in einer Variable gespeichert.
    Habe mir dazu nun DomDocument angeschaut:
    PHP-Code:
            $dom = new DomDocument();
            
    $dom->preserveWhiteSpace false;
            
    $dom->load('XML/login.xml');

            
    $userElement $dom->createElement("user");
            
    $userContent $dom->createTextNode($this->user);
            
    $userElement->appendChild($userContent);

            
    $passwordElement $dom->createElement("password");
            
    $passwordContent $dom->createTextNode($this->password);
            
    $passwordElement->appendChild($passwordContent);

            
    $parent $dom->getElementsByTagName("login")->item(0);
            
    $user $dom->getElementsByTagName('user')->item(0);
            
    $password $dom->getElementsByTagName('password')->item(0);

            
    $parent->replaceChild($userElement$user);
            
    $parent->replaceChild($passwordElement$password);
            
            echo 
    $dom->saveXML(); 
    Dies funktioniert nun auch wie gewünscht.
    Aber ich finde es recht unhandlich und ich mag nicht dran denken, wenn später 25-30 Elemente zu befüllen sind.

    Hat jemand einen Tipp, in wie fern ich an diese Sache falsch herrangehe?

    Gruß,
    Spider

    PS: Was natürlich noch fehlt ob Elemente existieren etc., dann nur dann sollen eine Ersetzung statt finden.

  • nikosch
    antwortet
    Dann nutz halt X-Path um nur ein leeres Element zu erstellen und das Objekt, um alle Elementeigenschaften zuzuordnen. Formelemente kann man sehr gut ls Objekte abbilden.

    Einen Kommentar schreiben:


  • Paul.Schramenko
    antwortet
    Trotzdem würde sich dafür eine (oder mehrere) Klasse(n) anbieten.

    Einen Kommentar schreiben:


  • SpiderJerusalem
    antwortet
    Die Struktur bleibt leider nicht so einfach ...später wird noch einiges an komplexen XPath Querys hinzukommen, weiß noch nicht ob ich das dann mit einer Schleife erschlagen bekomme.
    Und auf die Strutkur der XML Vorlagen, habe ich leider keinen Einfluss.

    -Spider

    Einen Kommentar schreiben:


  • Paul.Schramenko
    antwortet
    Mach dir doch dafür eine Klasse, befüllen kannst du das ganze dann auch über eine Schleife.

    Einen Kommentar schreiben:

Lädt...
X