Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XML auslesen, speichern und per PHP/HTML darstellen (https://www.delphipraxis.net/123931-xml-auslesen-speichern-und-per-php-html-darstellen.html)

CasaN 11. Nov 2008 14:25


XML auslesen, speichern und per PHP/HTML darstellen
 
Hallo,

will eine XML-Datei auslesen, speichern und dann die Inhalte mit PHP/HTML darstellen.

Z. Z. mach ich das so, dass ich die Seite auslese
$url = "http://eu.wowarmory.com/character-sheet.xml?r=Onyxia&n=Casan";
$inhalt = file_get_contents ($url);
und dann die Inhalte ausschneide
$pinGuildName = Substr ($inhalt, strpos($inhalt,"pinGuildName = ")+16,strpos($inhalt,"pinGuildUrl = ")-strpos($inhalt,"pinGuildName = ")-21);
Es ist aber aufwendig und sehr langsam :-(

Hab mir schon die Finger bei Google wund getippt :-( also wenn mir jemand helfen kann:

1. Wie krieg ich das hin, dass ich den XML-Inhalt und nicht HTML-Code habe.
(die 2 anderen Punkte sind nicht so wichtig - wenn ich 1. habe kann ich selber weiter suchen, aber wenn jemand Lust hat... :-))
2. Wie kann ich dieses dann auf meinen Web-Server und/oder lokal (als temp-Datei) speichern.
3. Wie kann ich dann diese XML per HTML/PHP lesen?

ich danke für jede Hilfe (ausser "such bei Google" u. ä.) :-)

***wenn ich die $url mit z. B. TotalCommander auslese (downloade), krieg ich HTML-Code raus, wenn ich mit das mit Firefox anschaue (Quellcode) seh ich schön die XML, IE bring bei Quellcode einen Fehler***

Namenloser 11. Nov 2008 15:24

Re: XML auslesen, speichern und per PHP/HTML darstellen
 
Ich könnte mir vorstellen, dass die Seite den Useragent überprüft, und auf diese Weise eine Browserweiche zu realisieren. Während der Firefox XML-Dokumente problemlos darstellen kann, haben manche Browser, vor allem ältere, ja noch probleme damit.

Wie du mit PHP den Useragent mitsenden kannst, weiß ich nicht, aber das müsste sich sicherlich herausfinden lassen. Wie du die Datei parsen kannst, hängt u.A. von der verwendeten PHP-version ab. Afaik wurden manche Funktionen erst mit version 5 implementiert. Es gibt aber auch einige in PHP geschriebene Parser, die zumindest auch uinter Version 4 funktionieren müssten.

Ich hoffe, dass dir das weiterhilft.

jfheins 11. Nov 2008 15:40

Re: XML auslesen, speichern und per PHP/HTML darstellen
 
Genau, die Seite verwendet eine Browserweiche. Sende also den User-Agent
Zitat:

Mozilla/5.0 (Windows NT 6.0; U; de; rv:1.8.1) Gecko/20061208 Firefox/2.0.0
dann sollte es gehen.

(Mit der Browserweiche bekommt mein armer Opera zwar auch den HTML-Code, obwohl xml kein Problem darstellt, aber so sind die nunmal ^^)

Du wirst wohl um fsockopen nicht herumkommen ;) (Beispiele sind da ja)

Grüße,
Julius

CasaN 12. Nov 2008 08:00

Re: XML auslesen, speichern und per PHP/HTML darstellen
 
ich danke erstmal :-)

generic 12. Nov 2008 09:09

Re: XML auslesen, speichern und per PHP/HTML darstellen
 
Normal durchsucht man XML mit XPATH.
Du kannst das Ergebnis (oder die XML) mit XSLT in ein beliebiges Format bringen z.B. HTML zur Anzeige.

Theoretisch brauchst du noch nicht mal PHP dazu, da die meisten Browser XML und XSLT verarbeiten können.
Wenn du ältere Browser unterstützen willst, nimmst du einfach PHP mit dem DOM und läst dieses mit dem XSLT rendern.

Ein schönes XML / XSLT Beispiel ist die Webseite:
http://eu.starcraft2.com/

Komplett mit XML und Co gemacht.

mkinzler 12. Nov 2008 10:56

Re: XML auslesen, speichern und per PHP/HTML darstellen
 
Im PEAR-Repository gibt es u.U. auch passende Klassen

CasaN 12. Nov 2008 14:59

Re: XML auslesen, speichern und per PHP/HTML darstellen
 
Punkt 1. erledigt :-)

$url= "http://eu.wowarmory.com/character-sheet.xml?r=".$realm."&n=".$char;
ini_set("user_agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
$xml = simplexml_load_file($url);
$xml2 = $xml->asXML();

und dann schreib ich die $xml2 in die Datenbank - fsockopen ist bei mir gesperrt, hab immer Fehler bekommen dass die Datei nur 776 ist oder sowas, also hab ich mich für Datenbank entschieden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz