Php-Problem: Code wird falsch geparst

G

garraty47

Aktives Mitglied
Thread Starter
Dabei seit
18.11.2004
Beiträge
547
Reaktionspunkte
5
ich versuche hier gerade xml-dateien mittels php auszulesen und auszugeben.
Nun habe ich folgende Codezeile in meinem Script:
Code:
echo $xml->titel[0];

Das Problem ist, dass anscheinend durch das
Code:
->
der PHP-Bereich beendet wird, also analog zu
Code:
?>
Kann das sein? Wenn ich die Seite im Browser aufrufe wird nämlich ab dem -> der Code als Text im Browser ausgegeben.
Wie kann ich dem Problem beikommen?
 
Hat php einen eingebauten xml Parser? Ich dachte, das muss man über extensions realisieren. Wie z.B. mit expat.

Edit: klick
 
php 4 oder 5?
und was nutzt du um das $xml zu erzeugen?


am -> wird es nicht liegen, da das bei objekten genutzt wird...
 
so sieht der ganze code auf dem ich aufbauen will aus:
ich benutze derzeit MAMP mit PHP 5.2.1
SimpleXML ist aktiviert.

Code:
<?php
 
if (file_exists('test1.xml')) {
$xml = simplexml_load_file('test1.xml');
 
echo $xml->titel[0];
 
} else {
exit('Konnte Datei nicht laden.');
}
?>

und so die xml-datei:
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<artikel>
<titel>titel</titel>
<intro>intro</intro>
<inhalt>inhalt</inhalt>
</artikel>
 
ASK YOUR DEBUGGER:

PHP:
print_r($xml);

zeigt Dir an, was überhaupt eingelesen wurde in $xml! Bei Betrachtung im Quelltext kannst Du die Ausgabe der Webseite&print_r() besser lesen.
 
Anscheinend nichts. Inkl. dem print_r ist das die Ausgabe im Browser:
Code:
titel[0]; } else { exit('Konnte Datei nicht laden.'); } ?>
 
tja, dann ist wohl $xml kein objekt...
kannst ja noch ein if($xml) davor basteln, um zu sehen, ob $xml überhaupt korrekt da ist...
 
bzw. ein echo var_dump($xml);
 
... kann es sein, daß Du hier aus einem Tutorial arbeitest :) (http://www.drweb.de/php/php-xml.shtml)

Zu Deiner Frage - ich gehe davon aus, daß folgendes gilt:
=> PHP 5 und Apache laufen
=> SimpleXML wird eingebunden (ggf. header include?)
=> Aufgruf im Browser über "http://localhost/seite/datei.php"
=> Datei test1.xml liegt neben(!) dem Script datei.php
=> Script-Datei hat die richtige Definition - Unicode ist nicht gut, kein UTF8, lieber DOS oder UNIX oder ASCII (Im Editor umstellen!)

Verifizier, daß SimpleXML tatsächlich läuft!
Einfach Datei test.php erstellen - Inhalt <?php phpinfo(); ?> und die aufrufen.

... wenn alles okay ist, dann gibt es eher ein anderes Problem...

good luck
,-magmac))
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: garraty47
ja, ist aus dem tutorial, lol;-)
schande über mich, ich habe nicht über localhost:8888/ aufgerufen sondenr über file://

tschulligung....
 
:) gern geschehen... - also läufts jetzt?

viel Spaß weiterhin
 
ja, geht.
jetzt kann ich anfangen zu basteln;-)
 
jetzt hab ich doch noch ein problem:
wie kann ich elemente des xml-baumes in einer while-schleife ausgeben?
die elemente haben alle eine id, sowie weitere attribute wie titel, text, datum, etc.
 
  • Gefällt mir
Reaktionen: garraty47
erledigt
 
Zuletzt bearbeitet:
Zurück
Oben Unten