Michael: XML-Tree

Nochmal Hallo,

ich hab gestern schon mal gepostet, aber vielleicht habe ich mich ein bisschen unglücklich ausgedrückt. Egal ich send mal nen Beispielcode mit, dann kann man warscheinlich besser verstehen, was gemeint war:

<?php

require_once "XML/Tree.php";

$Baum=new XML_Tree();

$Baum->addRoot('Rootelement','Blubber','');

$fp=fopen("XML_Datei.xml","w");

@fwrite($fp,$Baum->get());

?>

Mein Problem ist jetzt, daß der Befehl addRoot die Processing Instruction

<?xml version="1.0" ?>

ausgibt. soweit alles wunderbar, aber ich bräuchte zusätzlich noch eine
Encoding anweisung.

<?xml version="1.0" encoding="UTF-8"?>

Kann mir vielleicht jemand nen Tip geben, wie ich addRoot dazu bringe das zu schreiben.
Danke und Gruß Michael

  1. new XML_Tree(); unterstützt offensichtlich nur eine versionsangabe.
    bei ->addRoot() bist du wohl an der falschen stelle.

    wenn ein blick in die doku keine info liefert, würde ich mal ein print_r auf das xml objekt machen, und schauen was da so steht.
    notfalls kann man dann ja die versionangaben selber um die encoding info ergänzen.

    1. Hallo,

      was ist das ? Ist das ein Skript ?
      Ich suche auch ein Skript mit dem man xml Dateien aus verschiedenen Tabellen einer mysql DB erstellen kann.

      Kennt jemand soetwas ?

      Danke

      1. Hallo Anton,
        mit dem Skript erzeugst Du ein XML-Document.
        Probiers doch kurz aus.
        Wenn du noch Kinder einfügen willst, mach das mit addChild
        Gruß Michael

        1. Hallo Michael,

          wo ist das Skript ? Was sind denn das für Funktionen die du aufrufst?
          Sie die schon in php eingebaut ?

          Hast du mal ein Link ?

          1. wo ist das Skript ? Was sind denn das für Funktionen die du aufrufst?
            Sie die schon in php eingebaut ?

            das Skript steht in meinem ersten Thread.Hier also nochmals:

            <?php

            require_once "XML/Tree.php";

            $Baum=new XML_Tree();

            $Baum->addRoot('Rootelement','Blubber','');

            $fp=fopen("XML_Datei.xml","w");

            @fwrite($fp,$Baum->get());

            ?>

            Die Funktionen stammen aus PEAR das ist eine Bibliothek

            Hast du mal ein Link ?

            Nein, hab noch nicht mehr als das was gepostet ist.

            Gruß Michael

  2. Nochmal Hallo,
    ich hab gestern schon mal gepostet,

    Michael,
    Dann bleib bitte auch in deinem Thread https://forum.selfhtml.org/?t=88172&m=525296
    Gunnar

    --
    "(Der Student) kann sich so völlig dem hingeben, was er naiv für die Computerwissenschaft hält, also der bloßen Verfeinerung seiner Programmiertechniken, daß er sich auf diese Weise effektiv daran hindert, etwas wirklich Wesentliches zu studieren."
    (Joseph Weizenbaum in "Die Macht der Computer und die Ohnmacht der Vernunft")
    1. Dann bleib bitte auch in deinem Thread https://forum.selfhtml.org/?t=88172&m=525296
      Gunnar

      Hallo Gunnar,
      war einfach der Meinung, das sich die Fragestellung so stark verändert hat, das ich nen neuen Thread verdient hab.
      Michael

  3. Hallo,

    <?xml version="1.0" encoding="UTF-8"?>

    Kann mir vielleicht jemand nen Tip geben, wie ich addRoot dazu bringe das zu schreiben.

    addRoot erzeugt das Wurzelelement, hat aber mit der XML-Deklaration nichts zu tun.

    Lt. http://pear.php.net/manual/en/package.xml.xml-tree.xml-tree.xml-tree.php ist die encoding-Angabe offenbar nicht vorgesehen.

    Vielleicht hilft diese Ersetzung weiter:

    fwrite($fp,str_replace('<?xml version="1.0"?>','<?xml version="1.0" encoding="UTF-8"?>',$Baum->get()));

    MfG, Thomas

    1. Hallo Thomas,

      Die Idee mit dem str_replace war gut.
      Aber ich hab bis jetzt gebraucht bis es funktioniert hat, weil ich so
      ein Freeware PHP Editor hab und der immer die <??> von xml als PHP Tags
      interpretiert hat und mir dann immer den Code nicht mehr angezeigt hat.
      Jetzt hab ichs in einem normalen Textverarbeitung eingebaut, welche nicht interpretiert und es hat wunderbar geklappt.
      Scheiß Technik

      Danke und Gruß Michael