XML Datei auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML Datei auslesen

    Hallo alle zusammen,

    ich habe da ein kleines Problem bei welchem ich Euch gerne um Hilfe bitten würde. Ich habe eine XML Datei die wie folgt aussieht:

    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <iw:openimmo xsi:schemaLocation="http://www.openimmo.de openimmo.xsd">
      <iw:channel>
        <iw:shop>
           <iw:text>Ich bin Text und möchte angezeigt werden.</text>
           <iw:adresse>
    	 <iw:plz>90482</iw:plz>
    	 <iw:ort>Nürnberg</iw:ort>
    	 <iw:strasse>Hellerstr.</iw:strasse>
    	 <iw:hausnummer>51</iw:hausnummer>
    	 <iw:land iso_land="DEU"/>
           </iw:adresse>
        </iw:shop>
        <iw:shop>
           <iw:text>Ich bin ein neuer Text und möchte angezeigt werden.</text>
          <iw:adresse>
    	 <iw:plz>90210</iw:plz>
    	 <iw:ort>New York</iw:ort>
    	 <iw:strasse>Broadway</iw:strasse>
    	 <iw:hausnummer>5th</iw:hausnummer>
    	 <iw:land iso_land="US"/>
           </iw:adresse>
        </iw:shop>
      </iw:channel>
    </iwpenimmo>

    Jetz möchte ich gerne die die verschiedenen Daten per PHP in einer Schleife auslesen und die Daten in eine Datenbank schreiben. Ich habe schon versucht den Text mit der Simplexml Funktion auszulesen, aber das scheint wegen den Tags <iw: soundso> nicht zu funktionieren.

    PHP-Code:
     <?php 
          $file 
    'test.xml';
          if(!
    $xml simplexml_load_file($file)){
          die(
    "XML-Dokument kann nicht geparst werden!");
          }
          
          foreach (
    $xml->channel->shop as $text) {
              echo 
    utf8_decode($text->text), '<br />';
          }
    ?>
    Da ich mich mit XML nicht sehr besonders auskenne, würde ich mich freuen, wenn mir jemand einen Tip geben könnte wie ich die XML Datei mit alle Daten auslesen kann.

    Vielen Dank schon mal im vorraus
    Marcel
    Zuletzt geändert von biemar; 09.02.2008, 22:36.

  • #2
    Ich habe schon versucht den Text mit der Simplexml Funktion auszulesen, aber das scheint wegen den Tags <iw: soundso> nicht zu funktionieren.
    Heisst das, dass die Fehlermeldung 'XML-Dokument kann nicht geparst werden!' erscheint?
    Quick and Dirty:
    PHP-Code:
    $xml file_get_contents('test.xml');
    $xml str_replace('iw:','',$xml);
    if(!
    $xml simplexml_load_string($xml)){
     die(
    "XML-Dokument kann nicht geparst werden!");

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Schalt mal das error_reporting hoch, da erhälst du einen Haufen Warnungen und Fehler. jahlives Workaround sollte funktionieren. Sauberer ist es aber, wenn du dem Ersteller der XML-Dateien dazu bringst, valides XML zu erstellen.

      Kommentar


      • #4
        Hi,

        danke für die schnelle Antwort. Ja, Es kommt die Fehlermeldung, dass das XML-Dokument nicht geparst werden kann. Dazu kommen noch einige Warnungen, dass der namespace prefix iw nicht definiert ist.

        Problem ist, dass ich die XML Datei so hochgeladen bekomme, und diese so verarbeiten muss wie sie ist.

        Werde jetzt aber gleich mal den Lösungsvorschlag von jahlives ausprobieren.

        Gruß
        Marcel

        Kommentar


        • #5
          Problem ist, dass ich die XML Datei so hochgeladen bekomme, und diese so verarbeiten muss wie sie ist.
          Ein dafür passendes DTD zu laden ist doch trotzdem kein Problem.
          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

          Kommentar

          Lädt...
          X