kostenloser Webspace werbefrei: lima-city


XML mit PHP auslesen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    lagerhaus

    Kostenloser Webspace von lagerhaus

    lagerhaus hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    lagerhaus

    Kostenloser Webspace von lagerhaus

    lagerhaus hat kostenlosen Webspace.


    Anforderungen

    Die SimpleXML Extension setzt PHP 5 voraus.


    Gibts auch M?glichkeiten ohne PHP5? Eher sowas wie... 4.3.10 ?

    MfG lagerhaus
  5. 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
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!