Problem: XML, PHP, formatOutput

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

  • Problem: XML, PHP, formatOutput

    Hallo,

    mein Problem wurde zwar vor einem Jahr oder so schon mal angesprochen (allerdings nicht von mir), es lässt sich aber dennoch nicht lösen. Und zwar will ich über ein PHP5-Skript eine XML-Datei verändern. Die XML-Datei hat ungefähr folgende Struktur:

    [COLOR=purple]<gesamt>[/COLOR]
    [COLOR=silver]..........[/COLOR][COLOR=purple]<punkt>[/COLOR]
    [COLOR=silver]....................[/COLOR][COLOR=purple]<unterpunkt1>[/COLOR][COLOR=red]...[/COLOR][COLOR=purple]</unterpunkt1>[/COLOR]
    [COLOR=silver]....................[/COLOR][COLOR=red]...[/COLOR]
    [COLOR=silver]..........[/COLOR][COLOR=purple]</punkt>[/COLOR]
    [COLOR=silver]..........[/COLOR][COLOR=red]...[/COLOR]
    [COLOR=purple]</gesamt>[/COLOR]

    Der relevante Teil der PHP-Datei sieht so aus:

    PHP-Code:
    $dom = new DomDocument();
    $dom->load("gesamt.xml");
    $dom->formatOutput true;

    $punkt $dom->createElement("punkt");
    $unterpunkt1 $dom->createElement("unterpunkt1");

    $punkt->appendChild($unterpunkt1);
    $dom->documentElement->appendChild($punkt);

    $dom->save("gesamt.xml"); 
    Und obgleich ich ja dieses "formatOutput" verwende, weigert sich PHP beständig, die Ausgabe auch tatsächlich zu formatieren. Was der mir da ausspuckt, sieht dann so aus:

    [COLOR=purple]<gesamt>[/COLOR]
    [COLOR=silver]..........[/COLOR][COLOR=purple]<punkt>[/COLOR]
    [COLOR=silver]....................[/COLOR][COLOR=purple]<unterpunkt1>[/COLOR][COLOR=red]...[/COLOR][COLOR=purple]</unterpunkt1>[/COLOR]
    [COLOR=silver]....................[/COLOR][COLOR=red]...[/COLOR]
    [COLOR=silver]..........[/COLOR][COLOR=purple]</punkt>[/COLOR]
    [COLOR=silver]..........[/COLOR][COLOR=red]...[/COLOR]
    [COLOR=purple]<punkt><unterpunkt1>[/COLOR][COLOR=red]...[/COLOR][COLOR=purple]</unterpunkt1>[/COLOR][COLOR=red]...[/COLOR][COLOR=purple]</punkt></gesamt>[/COLOR]

    Und das ist natürlich Mist. Es kommen auch keinerlei Fehlermeldungen von PHP oder so. Was mach' ich nur falsch? Kann mir jemand helfen?

  • #2
    Die gleiche Erfahrung musste ich auch schon machen, wenn ich ein XML mit $dom->load() lade. formatOutput scheint nur dann zu arbeiten, wenn man das XML komplett selbst erstellt. Wenn hier jemand näheres weiß, würd ich es auch gern wissen.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Das Problem hat sich erledigt. Man muss einfach vor dem load() folgende Zeile einfügen:

      PHP-Code:
      $dom->preserveWhiteSpace false
      ...dann klappt's.

      LG

      Kommentar


      • #4
        *aarrggghhh*

        da hätt ich selber auch draufkommen können - Vielen Dank
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar

        Lädt...
        X