kostenloser Webspace werbefrei: lima-city


Ein php Objekt als XML speichern?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    soboo

    soboo hat kostenlosen Webspace.

    Hallo

    ich habe ein Objekt in PHP, diese Daten will ich als XML Datei speichern ... aber wie ?

    das Objekt ist in mehrere Ebenen verschachtelt
    und enthält weitere Objekte, Arrays und auch HTML-Codes

    gibt es eine Funktion, die Objekte und Arrays in XML umwandelst

    ... quasi das Gegenstück zu Simle XML Load ?

    stdClass Object
    (
        [Gesamt] => 57
        [Ergebnisse] => stdClass Object
            (
                [Elemente] => Array
                    (
    
                        [0] => stdClass Object
                            (
                                [Id]  => 1
                                [Info1]  => stdClass Object
                                            (
                                                [MinRate] => 2
                                                [MaxRate] => 7
                                            )
                                [Info2]  => Beispiel <strong>Text </strong> mit HTML
                            )
    
                         [1] => stdClass Object
                            (
                                [Id]  => 2
                                [Info1]  => stdClass Object
                                            (
                                                [MinRate] => 3
                                                [MaxRate] => 5
                                            )
                                [Info2]  => Beispiel <strong>Text </strong> mit HTML
                            )
    
                         [2] => stdClass Object
                            (
                                [Id]  => 3
                                [Info1]  => stdClass Object
                                            (
                                                [MinRate] => 1
                                                [MaxRate] => 9
                                            )
                                [Info2]  => Beispiel <strong>Text </strong> mit HTML
                            )
    
    
                   )
            )
    )



    Wie bringe ich diese Daten aus dem Objekt sauber in XML
    damit ich den XML-STring dann als .xml speichern kann ? (cachen)

    gibt es eine Gegenstück zu Simle XML Load ... Simple XML Write ?

    Danke




    Beitrag zuletzt geändert: 28.1.2012 12:52:41 von soboo
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. soboo schrieb:
    gibt es eine Funktion, die Objekte und Arrays in XML umwandelst

    ... quasi das Gegenstück zu Simle XML Load ?

    Ja, die gibt es: XMLwrite

    EDIT: Sorry, etwas zu kurz gegriffen! Hiermit sollte es komfortabler zu machen sein: PEAR XML serializer
    Wenn das nicht zur Verfügung steht, wäre eine fertige Class sicher hilfreich: gesucht bei phpclasses.org

    Beitrag zuletzt geändert: 28.1.2012 13:34:06 von fatfreddy
  4. Autor dieses Themas

    soboo

    soboo hat kostenlosen Webspace.

    Danke

    ja, XMLWrite ist ja wieder nur Stückchen-Weise so weit ich das sehe,

    eine fertige Klasse dafür wäre ne Idee, muss ich mir mal paar ansehen

    eine ganz einfache Variante habe ich auch bei php.net unter SimpleXML noch gefunden

    <?php 
    
    class Obj2xml {
    
        var $xmlResult;
       
        function __construct($rootNode){
            $this->xmlResult = new SimpleXMLElement("<$rootNode></$rootNode>");
        }
       
        private function iteratechildren($object,$xml){
            foreach ($object as $name=>$value) { 
                if (is_string($value) || is_numeric($value)) {
                    $xml->$name=$value;
                } else {
                    $xml->$name=null;
                    $this->iteratechildren($value,$xml->$name);
                }
            }
        }
       
        function toXml($object) {
            $this->iteratechildren($object,$this->xmlResult);
            return $this->xmlResult->asXML();
        }
    }
    
    ?>


    Aufruf:

    $converter = new Obj2xml("root");  // ---- Name des Rooot-Elements 
    
    $newxml = $converter->toXml($object);  // ---- Object Daten zu XML String


    leider macht diese Klasse keinen Zeilenumbruch oder Einrückung, wenn ein neues Element anfängt
    aber das ist ja nur Schönheits-Problem, zur Not wird das wohl gehen ...


    ... ist der PEAR XML serializer auf Lima-City verfügbar ?

    bzw. wie kann ich feststellen, ob er auf einem Server (Webspace) installiert ist
    ... und wie greife ich dann darauf zu ?


    Beitrag zuletzt geändert: 28.1.2012 14:03:35 von soboo
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    soboo schrieb:
    ... ist der PEAR XML serializer auf Lima-City verfügbar ?

    bzw. wie kann ich feststellen, ob er auf einem Server (Webspace) installiert ist
    ... und wie greife ich dann darauf zu ?
    Das schnellste ist wahrscheinlich ein Script hochladen das den PEAR XML-Serializer nutzt und bei aktivierten Fehlermeldungen schauen ob er einen Fehler wirft wie "Funktion nicht definiert".
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!