Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
XML Datei auslesen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
XML Datei auslesen


 
biemar
09-02-2008, 22:23 
 
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:

<?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>
</iw:openimmo>

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
$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

 
jahlives
09-02-2008, 22:30 
 
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:

$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

 
PHP-Desaster
09-02-2008, 23:08 
 
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.

 
biemar
09-02-2008, 23:43 
 
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

 
tontechniker
10-02-2008, 02:47 
 
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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:41 Uhr.