XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP |
 |

19-05-2008, 16:27
|
speeedy018
Registrierter Benutzer
|
|
Registriert seit: Jan 2007
Beiträge: 97
|
|
Fatal error: Call to a member function on a non-object
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
|

21-05-2008, 21:35
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
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.
|

22-05-2008, 00:58
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
|
|
Zitat:
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.
|

22-05-2008, 14:52
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
Haha, wie geil!
wo ist der Smilie mit dem :hammer: ?
|

23-05-2008, 12:31
|
speeedy018
Registrierter Benutzer
|
|
Registriert seit: Jan 2007
Beiträge: 97
|
|
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
|

23-05-2008, 12:33
|
speeedy018
Registrierter Benutzer
|
|
Registriert seit: Jan 2007
Beiträge: 97
|
|
danke
Danke
für die Hilfe, es lag natürlich daran !
gruß
speeedy018
|

23-05-2008, 13:45
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
$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...)
|

05-06-2008, 17:53
|
speeedy018
Registrierter Benutzer
|
|
Registriert seit: Jan 2007
Beiträge: 97
|
|
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
|

05-06-2008, 18:03
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 3.134
|
|
Ne - nicht wirklich dein Thema...
PHP-Code:
new DOMDocument('1.0', 'ISO-8859-1');
|

05-06-2008, 19:52
|
speeedy018
Registrierter Benutzer
|
|
Registriert seit: Jan 2007
Beiträge: 97
|
|
DOMDocument funktioniert aber unter PHP 4 nicht!
Deswegen musste ich auf domxml_new_document umsteigen !
gruß
speeedy018
|

06-06-2008, 10:31
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 3.134
|
|
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.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|