PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP - Externe XML Seite auswerten?


ooAlbert
2008-05-09, 12:55:30
Hi,

ich möchte ganz gern eine XML seite auslesen, bzw. bestimmte Informationen aus dieser weiterverarbeiten. Diese XML Seite steht im Web und ist über eine externe URL abrufbar, da ich sowas noch nie gemacht habe wäre meine frage ob das überhaupt geht das man mittels eines externen links auf eine seite zeigt und PHP das dann abarbeitet ?

wie würde man ansonsten an sowas rangehen?
Ich hab sowas ähnliches mal mit Java gemacht aber da habe ich die Seite einfach als Textdokument benutzt und nicht beachtet das das XML ist, der einfacheit halber :)

ooAlbert
2008-05-09, 13:43:11
ich glaub ich hab was passendes gefunden. Nennt sich "SimpleXML"


<?php

$xml = simplexml_load_file('http://test.de/test.xml');

echo $xml->parent->child1;
?>


zumindestens kann man damit die XML datei auslesen lassen :)

ooAlbert
2008-05-09, 15:06:35
Ich hab jetzt etwas rumprobiert ... wie kann man denn alle oder bestimmte Kinder eines "Elternteiles" ausgeben? :)

Ich hab mir mal diese WOW-Seite hergenommen da die alles mit XML machen :) und somit unheimlich viel zum "auswerten"/rumspielen bieten.



<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/layout/guild-info.xsl"?>
<page globalSearch="1" lang="de_de" requestUrl="/guild-info.xml">
<guildKey factionId="1" name="Clan del Cangrejo Mareao" nameUrl="Clan+del+Cangrejo+Mareao" realm="Tyrande" realmUrl="Tyrande" url="r=Tyrande&amp;n=Clan+del+Cangrejo+Mareao"/>
<guildInfo>
<guild>
<members filterField="" filterValue="" maxPage="1" memberCount="204" page="1" sortDir="a" sortField="">
<character class="Hexenmeister" classId="9" gender="M�nnlich" genderId="0" level="70" name="Mrpotato" race="Blutelf" raceId="10" rank="0" url="r=Tyrande&amp;n=Mrpotato"/>
<character class="Magier" classId="8" gender="M�nnlich" genderId="0" level="70" name="Elvis" race="Troll" raceId="8" rank="2" url="r=Tyrande&amp;n=Elvis"/>
<character class="Paladin" classId="2" gender="Weiblich" genderId="1" level="70" name="Elhadya" race="Blutelf" raceId="10" rank="2" url="r=Tyrande&amp;n=Elhadya"/>
<character class="Druide" classId="11" gender="M�nnlich" genderId="0" level="70" name="Chuletones" race="Tauren" raceId="6" rank="2" url="r=Tyrande&amp;n=Chuletones"/>
<character class="Priester" classId="5" gender="Weiblich" genderId="1" level="70" name="Nydia" race="Untot" raceId="5" rank="2" url="r=Tyrande&amp;n=Nydia"/>
<character class="Magier" classId="8" gender="M�nnlich" genderId="0" level="70" name="Saiko" race="Untot" raceId="5" rank="2" url="r=Tyrande&amp;n=Saiko"/>
<character class="Hexenmeister" classId="9" gender="M�nnlich" genderId="0" level="70" name="Avsolutbleed" race="Untot" raceId="5" rank="2" url="r=Tyrande&amp;n=Avsolutbleed"/>
<character class="Druide" classId="11" gender="M�nnlich" genderId="0" level="70" name="Siken" race="Tauren" raceId="6" rank="3" url="r=Tyrande&amp;n=Siken"/>
<character class="Schamane" classId="7" gender="M�nnlich" genderId="0" level="70" name="Sharlock" race="Orc" raceId="2" rank="3" url="r=Tyrande&amp;n=Sharlock"/>

...


wie würde man denn jetzt ausgeben können was nach "members" kommt also in dessen Klammer (filterField="" filterValue="" maxPage="1" memberCount="204" ...)? Oder wie gibt man die ganzen Member(character) weiter unten aus, mit einer for-each-funktionalität?

Sephiroth
2008-05-09, 16:43:03
Du kannst z.B. ein XPath Query (http://de3.php.net/manual/de/function.simplexml-element-xpath.php) verwenden.

XPath (http://de.wikipedia.org/wiki/XPath) in Wikipedia
Beispiele findest du auch bei "PHP 5 und XML: Einfach einfach! (http://www.drweb.de/php/php-xml.shtml)".

in deinem Fall sollte das wie folgt gehen, um auf das Attribut filterField von ersten members Eintrag zuzugreifen

$xml->xpath('/page/guildKey/guildInfo/guild')->members[0]['filterField']