Php und XML

dessauer

Grünschnabel
Hallo liebe Community,

ich habe mich schon Stundenlang durch Google gewühlt, und auch viele PHP Tutorials durchgelesen.

Nun stehe ich aber trotzdem nach wie vor, vor einem ungelösten Problem.

Ich habe von einem Admin eines Privatservers für Onlinespiele den Link zu einer XML datei bekommen, in der alle Spieler die Momentan online sind aufgelistet sind.

Nun möchte ich aus dieser XML die sich ja dadurch auch ständig verändert, bestimmte Namen filtern wie zB Gildenmitglieder von mir und wenn diese Mitglieder online sind, soll dies das auch auf meiner Homepage die in HTML geschrieben ist angezeigt werden.

Meine Homepage ist online bei HPBK (Homepage Baukasten).

Nun meine Frage da ich mich einfach nicht mit Php und XML auskenne und ich auch durch zich versuche einfach keinen Erfolg sehe, kann mir jemand Helfen dieses Problem zu bewerkstelligen?

Auch vielleicht eine Hilfestellung wäre recht toll.

Falls weitere Informationen gebraucht werden, stehe ich gerne jederzeit zur verfügung.

Vielen Dank schon jetzt.
 
Hallo dessauer,

Zunächst muss geklärt werden, wenn du auf der Internetseite bist wo die Online-Status Angezeigt werden in XML geschrieben? Also wenn du dir den Quelltext ansiehst dieser dann in XML erscheint?.

Wenn ja,
dann kannst du das wie folgt lösen:

In PHP gibt es direkt eine "Funktion" um XML zu parsen:
PHP:
$xml = new SimpleXMLElement("http://www.diexmlseite.de/pluslink.php");
Damit schreibst du alle in der Seite vorhandenen Bäume in die Variable $xml.
Wenn du dir das nun mit "print_r" ausgeben lässt -> hast du ein Array.

Dieses kannst du nun wie folgt ausgeben:
PHP:
$xml->characterInfo->character->attributes()->name;
Schau dir den Quelltext der Seite an, dann kannst du genau einordnen welchen Unterbaum du eintragen musst.

Bsp.: Wow-Arsenal ->
PHP:
 <tabInfo subTab="profile" tab="character" tabGroup="character" tabUrl="r=Taerar&amp;cn=Splater&amp;gn=Cataclysm"/>
  <characterInfo>
    <character battleGroup="Vengeance / Rache" charUrl="r=Taerar&amp;cn=Splater" class="Krieger" classId="1" classUrl="c=Krieger" faction="Horde" factionId="1" gender="Männlich" genderId="0" guildName="Cataclysm" guildUrl="r=Taerar&amp;gn=Cataclysm" lastModified="9. September 2010" level="80" name="Splater" points="3650" prefix="Zornbringer " race="Orc" raceId="2" realm="Taerar" suffix="" titleId="22">
      <arenaTeams>
So sind die Bäume aufgebaut. Am einfachsten ist es dies alles zu Kopieren und in einen XML-Editor einzutragen, der zeigt dir meistens an, wenn du auf einen Baum Klickst, welche Unterbäume zu diesem gehören.

Nun kannst du das ganze dann in einem Echo noch ausgeben ;)
mfg Splater.

PS: Bin noch ziemlich Müde ;) Sorry fals etwas unverständlich :)
 
Hallo Splater,

am besten ich Poste dir mal den Link zu der XML die wie es scheint auch mit einem Stylesheet verbunden ist, ich aber nur die Daten haben will ohne Stylesheet, da die Daten ja auf HTML ausgegeben werden sollen, und meine HTML seite durch CSS schon ein Stylesheet besitzt ;)

hier ist der Link zu der XML

Rising-Gods PVE

und daraus möchte ich Bestimmte Namen wie zB "Thedevil", "Cyria", "Charleen" usw. gefiltert haben, das wenn diese Spieler Online gehen mir das auch angezeigt wird auf der HP
 
Hi, das ist eigentlich ganz einfach.
PHP:
<?php 
	$url = "http://www.rising-gods.de/external/MaNGOSstats_pve/stats.xml";	 ## Schreibe Link in Var. 	
	$xml = simplexml_load_file($url); 
	
	foreach ($xml->sessions->plr as $element){
		echo $element->name;
	}
	

?>

mfg splater
 
Nochmals Danke,

aber einfach finde ich das nicht,
ich verstehe zwar was der Code meint, aber was bzw wo muss ich diesen nun einfügen?
Wenn ich ihn direkt in die HTML schreibe dann zeigt er mir nix an bzw schreibt mir den Code in die HTML damit jeder den PHP code lesen kann :D

Und wo trage ich die Namen die er filtern soll ein?

Trotz alledem danke schonmal ist schon ein gutes Stück weiter =D
 
Hi,
also dein Hoster muss natürlich einen php Interpreter besitzen und dir auch zur verfügung stellen.
dann kannst Du das ganze so Ausführen:
PHP:
<?php
##code
?>
<html>
</html>
Wenn du nur bestimmte Namen will kannst du das mit einer if-Bedingung machen :
http://php.net/manual/de/control-structures.if.php
PHP:
<?php 
	$url = "http://www.rising-gods.de/external/MaNGOSstats_pve/stats.xml";	 ## Schreibe Link in Var. 	
	$xml = simplexml_load_file($url); 
	
	foreach ($xml->sessions->plr as $element){
		if($element->name == "name1" || $element->name == "name2" || $element->name == "name3"){
			echo $element->name;
		}
	}
	

?>
mfg splater
 
Vielen Dank nochmals nun muss ich die Homepage doch nocheinmal umbauen, da HPBK kein PHP unterstüzt -.-

Aber den Code kann ich trotzdem gut gebrauchen :D

Danke dir nocheinmal ^^
 
Zurück