Php-Problem: Code wird falsch geparst

garraty47

Mitglied
Thread Starter
Mitglied seit
18.11.2004
Beiträge
547
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?
 

Saugkraft

Moderator
Mitglied seit
20.02.2005
Beiträge
8.931
Hat php einen eingebauten xml Parser? Ich dachte, das muss man über extensions realisieren. Wie z.B. mit expat.

Edit: klick
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
55.853
php 4 oder 5?
und was nutzt du um das $xml zu erzeugen?


am -> wird es nicht liegen, da das bei objekten genutzt wird...
 

garraty47

Mitglied
Thread Starter
Mitglied seit
18.11.2004
Beiträge
547
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>
 

wegus

Moderator
Mitglied seit
13.09.2004
Beiträge
17.310
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.
 

garraty47

Mitglied
Thread Starter
Mitglied seit
18.11.2004
Beiträge
547
Anscheinend nichts. Inkl. dem print_r ist das die Ausgabe im Browser:
Code:
titel[0]; } else { exit('Konnte Datei nicht laden.'); } ?>
 

oneOeight

Aktives Mitglied
Mitglied seit
23.11.2004
Beiträge
55.853
tja, dann ist wohl $xml kein objekt...
kannst ja noch ein if($xml) davor basteln, um zu sehen, ob $xml überhaupt korrekt da ist...
 

magmac

Mitglied
Mitglied seit
08.10.2004
Beiträge
182
... 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:

garraty47

Mitglied
Thread Starter
Mitglied seit
18.11.2004
Beiträge
547
ja, ist aus dem tutorial, lol;-)
schande über mich, ich habe nicht über localhost:8888/ aufgerufen sondenr über file://

tschulligung....
 

magmac

Mitglied
Mitglied seit
08.10.2004
Beiträge
182
:) gern geschehen... - also läufts jetzt?

viel Spaß weiterhin
 

garraty47

Mitglied
Thread Starter
Mitglied seit
18.11.2004
Beiträge
547
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.
 
Oben