wo ist der Fehler beim speichern der XML ?

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

  • wo ist der Fehler beim speichern der XML ?

    Hallo,

    habe nochmal ein Problem mit XML

    PHP-Code:
    52.        $doc = new DOMDocument('1.0');
    53.        $node = new DOMNode;
    54.        $doc ->formatOutput true;
    55.        
    56.        $root 
    $doc -> create_Element('travelobject');
    57.        $doc $node -> append_child ($root);
    58. //Travelcode        
    59.        $travelcode $doc -> create_Element('travelcode');
    60.        $root $node -> append_child($travelcode);
    61.        $codetext $doc -> create_Text_Node($result['reise_id']);
    62.         $travelcode $node -> append_child($codetext); 
    ich bekomme dann folgende Fehlermeldung !

    Fatal error: Call to a member function on a non-object in /homepages/.../XML.php on line 59

    Das ganze soll mit PHP Version 4.4.8 laufen, auf meinem lokalen Server (5.2.3) läuft das ganze wenn ich die "_" rausnehme also anstatt create_element, createelement schreibe.

    Hat jemand eine Ahnung woran das liegt das oben beschriebene Problem, das mit dem "_" dient nur zur Info?

    gruß

    speeedy018

  • #2
    Also wenn $doc in Zeile 56 noch ein Element ist, fällt mir jetzt kein Grund ein, warum es dass in Zeile 59 nicht mehr sein sollte.

    Error_Reporting ist drin?
    Mach mal testausgaben und guck doch einfach mal, was $doc ist.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      Also wenn $doc in Zeile 56 noch ein Element ist, fällt mir jetzt kein Grund ein, warum es dass in Zeile 59 nicht mehr sein sollte.
      Mir fällt schon einer ein und der steht in Zeile 57: $doc = irgendwas.

      Kommentar


      • #4
        Haha, wie geil!

        wo ist der Smilie mit dem :hammer: ?

        Kommentar


        • #5
          wo ist der Fehler beim speichern der XML ?

          Hallo Leute,

          ich habe da wieder ein Problem, beim speichern bekomme ich lediglich ein

          "Object"

          in die xml datei geschrieben.

          mein datei sieht wie folgt aus:

          PHP-Code:

                  $doc 
          = new DOMDocument('1.0');
                  
          $node = new DOMNode;
                  
          $doc ->formatOutput true;
                  
                  
          $root $doc -> create_Element('travelobject');

          //Travelcode        
                  
          $travelcode $doc -> create_Element('travelcode');
                  
          $root $node -> append_child($travelcode);
                  
          $codetext $doc -> create_Text_Node($result['reise_id']);
                  
          $travelcode $node -> append_child($codetext);
          //Traveltitle        
                  
          $traveltitle $doc -> create_Element('traveltitle');
                  
          $root $node -> append_child($traveltitle);
                  
          $titletext $doc -> create_text_node($result['reisetitel']);
                  
          $traveltitle $node -> append_child($titletext);
          //Travelduration        
                  
          $travelduration $doc -> create_Element('travelduration');
                  
          $root $node -> append_child($travelduration);
                  
          $durationtext $doc -> create_text_node($result['dauer_tage']);
                  
          $travelduration $node -> append_child($durationtext);

          .
          .
          .
                  
          $handle fopen('test123.xml''w');
                  
          fwrite($handle$doc);
                  
          fclose($handle);
                  echo 
          '|  Reise wurde als XML abgelegt'
          bei echo $doc kommt auch nur "object".

          aber wie kann ich dann die generierte XML- Datei speichern ?
          $doc -> save("test123.xml") funktioniert nicht, da ich einen PHP 4 Server habe

          Danke für die Antworten im Vorraus

          Speeedy018

          Kommentar


          • #6
            danke

            Danke

            für die Hilfe, es lag natürlich daran !

            gruß

            speeedy018

            Kommentar


            • #7
              Kenn mich bei PHP4-Dom leider ned so aus, aber schau dir mal das an:

              http://www.php.net/manual/de/functio...-dump-file.php
              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


              • #8
                $doc ist nun mal ein Objekt, das kannst du weder mit echo einfach ausgeben, noch mal eben so als String in eine Datei speichern.

                Also wenn es eine entsprechende Methode dafür unter PHP4 gibt, solltest du die im Manual finden (evtl. ist Quetschis Link ja schon die Lösung).

                Falls DOMDocument die keine Methode zur Verfügung stellt, dann musst du sie selbst implementieren. (kann ich mir aber eigentlich nicht vorstellen)

                (Aber auch meine PHP4-Zeiten sind etwas her...)

                Kommentar


                • #9
                  XML ist einfach nicht mein Thema,
                  ich hänge schon wieder !

                  PHP-Code:
                  $doc = new DOMDocument('1.0'); 
                  gibt folgende Zeile aus:

                  <?xml version="1.0"?>

                  wie bekomme ich das hier hin ?

                  <?xml version="1.0" encoding="ISO-8859-1" ?>

                  Mit

                  PHP-Code:
                  test $doc -> dump_mem(true,'ISO-8859-1'
                  und

                  PHP-Code:
                  echo '<pre>'.htmlentities($test).'<pre>'
                  wird es richtig ausgegeben.

                  In die datei speichere ich es so:

                  PHP-Code:
                  $doc->dump_file('temp/test.xml'); 
                  wie bekomme ich bei dump_file das encoding rein ?

                  Danke im Vorraus

                  speeedy018

                  Kommentar


                  • #10
                    Ne - nicht wirklich dein Thema...

                    PHP-Code:
                    new DOMDocument('1.0''ISO-8859-1'); 
                    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


                    • #11
                      DOMDocument funktioniert aber unter PHP 4 nicht!

                      Deswegen musste ich auf domxml_new_document umsteigen !

                      gruß

                      speeedy018

                      Kommentar


                      • #12
                        argh - nicht aufgepasst.

                        Nimm halt dann
                        PHP-Code:
                        $xmlStr $doc->dump_mem(true,'ISO-8859-1'); 
                        und $xmlStr speicherst halt dann über die file-Funktionen von PHP. Scheint ned anders zu gehen - zumindest steht nicht mal in meinem Buch was drüber.
                        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