• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

XML to PHP

Angel26

Spiele-Novize/Novizin
Registriert
19.08.2003
Beiträge
102
Reaktionspunkte
0
Hallo liebe Comm.

Ich habe da nen kleines Problem

Ich habe eine externe XML Datei
http://eu.wowarmory.com/guild-info.xml?r...in+Business&p=1


der Quellcode sieht wie folgend aus

<?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="Back in Business" nameUrl="Back+in+Business" realm="Azshara" realmUrl="Azshara" url="r=Azshara&n=Back+in+Business"/>
<guildInfo>
<guild>
<members filterField="" filterValue="" maxPage="1" memberCount="27" page="1" sortDir="a" sortField="">
<character class="Schamane" classId="7" gender="Mýnnlich" genderId="0" level="52" name="Syrus" race="Draenei" raceId="11" rank="3" url="r=Azshara&n=Syrus"/>
<character class="Krieger" classId="1" gender="Mýnnlich" genderId="0" level="33" name="Cere" race="Nachtelf" raceId="4" rank="0" url="r=Azshara&n=Cere"/>
</members>
</guild>
</guildInfo>
</page>

Habe jetzt nur 2 Zeilen vom wichtigen genommen, weil wieder holt sich ja eh nur.

So nun will ich an folgende Daten kommen, wie ist mir egal.
Ich will die values von
Class, gender, level, name, race, rank

Habe da iwie an ein assoziatives Array gedacht.

Das wichtigste ist es muss auf jeden Fall PHP4.3 aufwärts kompatibel sein.

Über eine Hilfe würde ich mich sehr freuen
Und bitte keine google links, weil google behersche ich selber nur leider finde ich da nichts was mir hilft.

Danke für eure Hilfe

Mfg.Denis
 
Ein assoziatives Array wird dir da nicht helfen, da das eindimensional ist.
Du brauchst eine Klasse um die XML-Datei zu durchlaufen. Wenn ich daheim bin kann ich dir gerne die Klasse und den Code suchen.
 
klausbyte am 19.12.2007 15:16 schrieb:
Ein assoziatives Array wird dir da nicht helfen, da das eindimensional ist.
Du brauchst eine Klasse um die XML-Datei zu durchlaufen. Wenn ich daheim bin kann ich dir gerne die Klasse und den Code suchen.

Hi cool, ja das wäre nett.
Das hört sich auf jedenfall schonmal positiv an :)
 
Code:
$dom = new DomDocument();
$dom->preserveWhiteSpace = false;

	$dom->load("adresse.xml");
	$wurzel = $dom->documentElement;
	$knoten = $wurzel->getElementsByTagName("guildinfo");
	foreach($knoten as $lauf)	{
		$title = $lauf->getElementsByTagName("charakter");
		foreach($title as $alle)	{
				$what = $alle->firstChild;
				// Mit echo $what könntest du in dieser schleife den inhalt aller charakter-tags ausgeben. 
			}
}

Ich suche zuerst alle Knoten von guildinfo (damit der header nicht mitgeparst wrid) und durchlaufe dann für jeden guildinfo knoten nochmals auf das argument charakter (könnte bei dir was anders sein natürlich, oder gemischt)

Natürlich kannst du nciht nur das firstChild bekommen, sondern auch die Attribute. Aber wenn du schon so etwas spezielles mit XML machen willst solltest dir auch für die Doku nicht zu schade sein ;) .Dies ist nur eine grobe Konstruktion! Mit der Struktur von XML solltest dich halt scho auskennen.
 
klausbyte am 19.12.2007 23:01 schrieb:
Code:
$dom = new DomDocument();
$dom->preserveWhiteSpace = false;

	$dom->load("adresse.xml");
	$wurzel = $dom->documentElement;
	$knoten = $wurzel->getElementsByTagName("guildinfo");
	foreach($knoten as $lauf)	{
		$title = $lauf->getElementsByTagName("charakter");
		foreach($title as $alle)	{
				$what = $alle->firstChild;
				// Mit echo $what könntest du in dieser schleife den inhalt aller charakter-tags ausgeben. 
			}
}

Ich suche zuerst alle Knoten von guildinfo (damit der header nicht mitgeparst wrid) und durchlaufe dann für jeden guildinfo knoten nochmals auf das argument charakter (könnte bei dir was anders sein natürlich, oder gemischt)

Natürlich kannst du nciht nur das firstChild bekommen, sondern auch die Attribute. Aber wenn du schon so etwas spezielles mit XML machen willst solltest dir auch für die Doku nicht zu schade sein ;) .Dies ist nur eine grobe Konstruktion! Mit der Struktur von XML solltest dich halt scho auskennen.

Cool danke damit hast du mir sehr gut weitergeholfen, endlich mal was ich raffe, danke :)

Frohe Weihnachten und guten Rutsch ;)

gleich mal testen und so :)


//Edit:
So jetzt bin ich iwie verwirrt

ich bekomme nen error
Fatal error: Cannot instantiate non-existent class: domdocument in /var/www/web522/html/xml/xml/test123.php on line 2
 
Welche php Version? Ich habe deutlich über 5.
Kann erst daheim meinen Code wieder anschauen.
 
Angel26 am 21.12.2007 01:32 schrieb:
klausbyte am 20.12.2007 18:38 schrieb:
Angel26 am 20.12.2007 17:10 schrieb:
wie geschrieben 4.3 php
Warum das denn???

weil ich kein php5 webspace habe
Dann schreib mal deinem Provider. Die meisten betreiben php4 und php5 parallel, entweder durch die Dateiendung .php5 oder durch generelles Freischalten per mail.
php4 hat in ein paar Monaten eh keinen Support mehr..
 
php5: http://de.php.net/simplexml

php4: http://minixml.psychogenic.com
 
Zurück