XML mit PHP auslesen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anforderung
anscheinend
ansicht
aufnahme
beispiel
bild
datei
dateiname
daten
dokument
extension
extra
funktion
handhabung
kompendium
nachfolgend
parsen
rubrik
schauen
zeile
-
Hi,
ich m?chte mit PHP eine XML-Datei auslesen, und dass diese dann "gut" ausgelesen wird.
Namentlich geht es um etwas wie http://www.n24.de/rss/index.php?rubrik=home
Diese soll ausgelesen und genauso einfach wieder von mir ausgegeben werden, nur eben mit meiner URL. Dabei geht es mir darum, dass das XML weiterhin anst?ndig aussieht, und nicht alles in einer Zeile ohne Umbr?che und mit Interpretation des XMLs durch den Browser.
(Zum Beispiel steht bei mir oben im Firefox "Mit dieser XML-Datei sind anscheinend keine Style-Informationen verkn?pft. Nachfolgend wird die Baum-Ansicht des Dokuments angezeigt.")
MfG lagerhaus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
schau dir mal das Simple-XML-Objekt von PHP an ( http://php.net/simplexml ) - sehr einfach Handhabung von XML-Dateien mit PHP-Funktionen.
ps3web -
Anforderungen
Die SimpleXML Extension setzt PHP 5 voraus.
Gibts auch M?glichkeiten ohne PHP5? Eher sowas wie... 4.3.10 ?
MfG lagerhaus -
Was willst du denn machen?
Die Datei mit PHP auslesen oder die Datei anders darzustellen.
F?r PHP gibt es extra Funktion um eine XML-Datei zu parsen. Ein kleines Script aus meinem Buch poste ich weiter unten.
Um eine XML-Datei darzustellen kannst du CSS oder XSL/XSLT verwenden. CSS ist f?r den Anfang recht gut geeignet, aber man st??t schnell an die Grenzen. XSL /XSLT ist hingegen recht umfangreich.
Aus meinem PHP5 Kompendium (f?r PHP4) :
<?php $GLOBALS["dateiname"] = ""; function elem_start($xml_parser, $name, $attribute) { if ($name=="filename"){ print '<table border="1" cellpadding="5">'; print "<tr><td>Dateiname:</td><td>"; xml_set_character_data_handler($xml_parser, "cdata_dateiname"); } else if ($name=="datetimeoriginal") { print "<tr><td>Datum der Aufnahme:</td><td>"; xml_set_character_data_handler($xml_parser, "cdata_datum"); } else { xml_set_character_data_handler($xml_parser, "cdata_nichtausgeben"); } } function elem_ende($xml_parser, $name) { if ($name=="filename"){ print "</td></tr>"; } else if ($name=="datetimeoriginal") { print "</td></tr>"; print "<tr><td colspan='2'><img src='"; print "./bilder/" . $GLOBALS["dateiname"] . "' /></td></tr>"; print "</table>"; } } function cdata_dateiname($xml, $daten) { $GLOBALS["dateiname"] = $daten; echo htmlspecialchars($daten); } function cdata_datum($xml, $daten) { echo htmlspecialchars($daten); } function cdata_nichtausgeben($xml, $daten) { } $xml_parser = xml_parser_create(); xml_parser_set_option ($xml_parser, XML_OPTION_CASE_FOLDING, 0); xml_set_element_handler($xml_parser, "elem_start", "elem_ende"); xml_set_character_data_handler($xml_parser, "cdata"); $daten = file_get_contents("bilder_php4.xml"); xml_parse($xml_parser, $daten, true); xml_parser_free($xml_parser); ?>
F?r PHP5 :
<?php $sim = simplexml_load_file("bilder.xml"); foreach ($sim->bild as $bild) { print '<table border="1" cellpadding="5">'; //Dateiname print '<tr><td>'; print 'Datei'; print '</td><td>'; print $bild->file->filename; print '</td></tr>'; //Datum der Aufnahme print '<tr><td>'; print 'Datum der Aufnahme'; print '</td><td>'; print $bild->exif->datetimeoriginal; print '</td></tr>'; //Bild print '<tr><td colspan="2">'; print '<img src="'; print './bilder/' . $bild->file->filename; print '" /></td></tr>'; print '</table>'; } ?>
MfG Lucas -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage