Tool-Time Geschrieben 12. Juli 2004 Teilen Geschrieben 12. Juli 2004 Ich stehe vor folgendem Problem : Ich habe eine XML Datei, welche ich mit PHP Prasen möchte und einzelne Werte in eine Datenbank schreiben möchte. Soweit so gut, nur es gibt gute Infos zum Prasen via PHP z.B. von Oreilly, PHP.net, Zend usw. Doch leider verwenden alle Beispiele ein Standart XML Datei nach folgendem Schema : <library> <book> <title>Programming PHP</title> <authors> <author>Rasmus Lerdorf</author> <author>Kevin Tatroe</author> </authors> <isbn>1-56592-610-2</isbn> <comment>A great book!</comment> </book> </library> Doch die XML Datei, welche ich benötige besitzt nicht solch ein Standartgerüst. Mal gibts neben comment ein Feld z.B. für Bewertung oder ähnliches. Doch auch nicht bei allen. Nun frage ich mich in wie weit lässt sich solch eine XML Datei Prasen ? Schon einmal Danke für eure Hilfe Tool-Time Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 13. Juli 2004 Teilen Geschrieben 13. Juli 2004 Was willst du genau machen? Willst du die Daten aus der XML-Datei nur lesen und in eine DB schreiben? Dann nutze die Funktion xml_set_element_handler(). Wenn du allerdings dein XML prüfen möchtest, kannst du xml_parse() benutzen. Ich weiss allerdings nicht, ob er nur auf Wohlgeformheit oder auch auf Gültigkeit hin prüft. Genaueres gibts hier Was meinst du eigentlich mit "Standartformate"? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 13. Juli 2004 Autor Teilen Geschrieben 13. Juli 2004 Hier mal ein Beispiel für ein ungeordnetes XML von XML-Line : Quelle : http://www.media-palette.de/tools/xml-line/ <?xml version="1.0" encoding="ISO-8859-1"?> <nahrungsmittel> - <vegetarisch> - - <obst>Apfel</obst> - - <obst>Birne</obst> - - <obst>Himbeere</obst> - - <gemuese preis="gut">Möhre</gemuese> - - <gemuese>Kopfsalat</gemuese> - - <gemuese>Tomate</gemuese> - </vegetarisch> - <fleisch> - - <schwein>Schnitzel</schwein> - - <rind>Gulasch</rind> - </fleisch> </nahrungsmittel> [/php] Alle Beispiel XML Dateien, welche ich bisher gefunden haben sind wie im ersten Posting sauber geordnet. Doch meine XML Datei ist dem Beispiel in diesem Posting sehr ähnlich, mit der Ausnahme das sich die Anzahl der Tags stark erhöht Wenn ich das XML von oben ( aus diesem Posting) in geordnetes XML umschreibe würde es so aussehen: [php] <?xml version="1.0" encoding="ISO-8859-1"?> <nahrungsmittel> - <vegetarisch> - - <obst>Apfel</obst> - - <obst>Birne</obst> - - <obst>Himbeere</obst> - </vegetarisch> </nahrungsmittel> Oder habe ich gerade ein Brett vorm Kopf ? Also noch mal kurz der Grundgedanke was mit der XML Datei passieren soll. 1) Datei einlesen (parsen) , 2) Werte entnehmen 3) Werte in HTML / (eventuell Flash ) anzeigen lassen 4) Werte für weitere Verarbeitung bzw. Nutzung in eine Mysql DB schreiben Danke für eure Hilfe Gruß Tool-Time :StefanE der mit dem Brett vorm Kopf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 14. Juli 2004 Teilen Geschrieben 14. Juli 2004 Hier mal ein Beispiel für ein ungeordnetes XML von XML-Line : Quelle : http://www.media-palette.de/tools/xml-line/ <?xml version="1.0" encoding="ISO-8859-1"?> <nahrungsmittel> - <vegetarisch> - - <obst>Apfel</obst> - - <obst>Birne</obst> - - <obst>Himbeere</obst> - - <gemuese preis="gut">Möhre</gemuese> - - <gemuese>Kopfsalat</gemuese> - - <gemuese>Tomate</gemuese> - </vegetarisch> - <fleisch> - - <schwein>Schnitzel</schwein> - - <rind>Gulasch</rind> - </fleisch> </nahrungsmittel> [/php] Alle Beispiel XML Dateien, welche ich bisher gefunden haben sind wie im ersten Posting sauber geordnet. Doch meine XML Datei ist dem Beispiel in diesem Posting sehr ähnlich, mit der Ausnahme das sich die Anzahl der Tags stark erhöht Wenn ich das XML von oben ( aus diesem Posting) in geordnetes XML umschreibe würde es so aussehen: [php] <?xml version="1.0" encoding="ISO-8859-1"?> <nahrungsmittel> - <vegetarisch> - - <obst>Apfel</obst> - - <obst>Birne</obst> - - <obst>Himbeere</obst> - </vegetarisch> </nahrungsmittel> Oder habe ich gerade ein Brett vorm Kopf ? Also noch mal kurz der Grundgedanke was mit der XML Datei passieren soll. 1) Datei einlesen (parsen) , 2) Werte entnehmen 3) Werte in HTML / (eventuell Flash ) anzeigen lassen 4) Werte für weitere Verarbeitung bzw. Nutzung in eine Mysql DB schreiben Danke für eure Hilfe Gruß Tool-Time :StefanE der mit dem Brett vorm Kopf also wenn du die Struktur einhäls ist die Anzahl der Tags doch egal. ich würde wenns nichts direkt bei www.php.net zu xml dateien parsen und werte entnehmen gibt, mal bei http://pear.php.net vorbeischauen. warum willst du nicht aus deiner XML Datei direkt per XSL Datei und Browser eine HTML Datei erzeugen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 14. Juli 2004 Autor Teilen Geschrieben 14. Juli 2004 warum willst du nicht aus deiner XML Datei direkt per XSL Datei und Browser eine HTML Datei erzeugen? Die Werte aus der XML Datei sollen jeweils in ein Input Feld geladen werden, damit man diese noch ändern kann. also wenn du die Struktur einhäls ist die Anzahl der Tags doch egal. Da heute ja PHP 5 released wurde versuche ich es mal mit der neuen XML Schnittstelle. Aber du meinst, es sollte auch bei einem XML Aufbau wie im letzten Posting Beispiel 1 ohne Probleme funktionieren ? Gruß Tool-Time :StefanE Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 14. Juli 2004 Autor Teilen Geschrieben 14. Juli 2004 Nach dem ich nun gut 2 Stunden mir PHP5 und SimpleXML herumgespielt habe :OD Scheint es zu gehen und zwar so wie ich es benötige. Ich werde es in den nächsten Tagen noch weiter ausprobieren . Danke für deine Hilfe Gruß Tool-Time :StefanE Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 15. Juli 2004 Teilen Geschrieben 15. Juli 2004 Nach dem ich nun gut 2 Stunden mir PHP5 und SimpleXML herumgespielt habe :OD Scheint es zu gehen und zwar so wie ich es benötige. Ich werde es in den nächsten Tagen noch weiter ausprobieren . Danke für deine Hilfe Gruß Tool-Time :StefanE dazu sind wir ja da... bitte poste deine Lösung für Leute mit gleichem/ähnlichen Problem(en) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tool-Time Geschrieben 16. Juli 2004 Autor Teilen Geschrieben 16. Juli 2004 Hier einmal kurz eine Beschreibung wie man mit PHP 5 über SimpleXML eine XML Datei verarbeiten kann . Die XML Datei nahrungsmittel.xml <?xml version="1.0" encoding="ISO-8859-1"?> <nahrungsmittel> - <vegetarisch> - - <obst>Apfel</obst> - - <obst>Birne</obst> - - <obst>Himbeere</obst> - - <gemuese preis="gut">Möhre</gemuese> - - <gemuese>Kopfsalat</gemuese> - - <gemuese>Tomate</gemuese> - </vegetarisch> - <fleisch> - - <schwein>Schnitzel</schwein> - - <rind>Gulasch</rind> - </fleisch> </nahrungsmittel> Die PHP Datei zum Abfragen eat_food.php <?php $xmldata = "nahrungsmittel.xml"; if(file_exists($xmldata)) { $xmlreport = @simplexml_load_file($xmldata) or die ("Datei $xmldata konnte nicht geladen werden"); echo " XML datei geladen "; ## # Auslesen der Gruppe Obst ## $apfel = $xmlreport->vegetarisch[0]->obst[0]->Value; $Birne = $xmlreport->vegetarisch[0]->obst[1]->Value; $Himbeere = $xmlreport->vegetarisch[0]->obst[2]->Value; ## # Auslesen der Gruppe Fleisch ## $schnitzel = $xmlreport->fleisch[0]->schwein[0]->Value; } else { echo" Die XML Datei $xmldata ist nicht vorhanden"; } ?> [/php] Mit simplexml_load_file($xmldata) wird die XML Datei nahrungsmittel.xml eingelesen und $xmlreport als Object übergeben. Da $xmlreport nun ein Object ist kann man ganz einfach auf jeden Wert innerhalb der XML Datei zugreifen. [php] $apfel = $xmlreport->vegetarisch[0]->obst[0]->Value; Hier sieht man in wie weit man auf den Wert (Value) des ersten Eintrags in der Gruppe Obst zugreift. Für den Fall das jemand die XML Datei in die PHP Datei schreibt, gibt es die SimpleXML Funktion simplexml_load_string. Sie ist mit der load_file identisch, mit der Ausnahme das sie keine externen XML Datein einläd. Weitere Infos zu SimpleXML unter PHP.net Gruß Tool-Time :StefanE Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.