# Daten aus Arsenal auslesen



## Bawagrog (5. März 2008)

Heyho,
ich programmiere gerade für meine Gilde ein anmeldescript für Raids und will als funktion einbauen, dass man nur seinen Charname eingeben muss und er aus der Amory die entsprechenden infos ausliest.
Also hab ich mir mal den Quelltext angeguckt und gemerkt das das einfach nur eine einfach aufgebaute Xml datei ist. z.B. die Stats: 
	
	



```
<baseStats>
		<strength attack="24" base="34" block="-1" effective="34"/>

		<agility armor="82" attack="-1" base="41" critHitPercent="5.10" effective="41"/>
		<stamina base="52" effective="393" health="3750" petBonus="-1"/>
		<intellect base="164" critHitPercent="6.81" effective="472" mana="6800" petBonus="-1"/>
		<spirit base="146" effective="160" healthRegen="10" manaRegen="131"/>
		<armor base="1178" effective="1178" percent="10.04" petBonus="-1"/>
	  </baseStats>
```
wären ja seh einfach auslesbar. Wenn ich aber die datei in php mit file_get_contents($arsenalurl); aufrufe kommt ein ganz anderer Code raus. da sind zwar die daten auch irgendwie versteckt aber das auszulesen ist nicht besonders schön.
Giebt es eine möglichkeit die xml datei so wie sie im Quelltext betrachten ist abzurufen?


----------



## Flamme (5. März 2008)

probiers ma mit nem Armoryparser^^


----------



## Bawagrog (5. März 2008)

Sorry aber selbst google hat keine antwort auf den begriff amoryparser 


			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        

 Meinst du vlt mit einem xml parser? Damit hab ich leider keinerlei erfahrung...


----------



## Elrigh (5. März 2008)

http://www.codeplex.com/WoWArmoryParser

Was google nicht kann, bringt yahoo fertig ^^


----------



## McMo007 (5. März 2008)

würde gerne helfen, aba bis jetz is nur bahnhof bei mir angekommen^^


----------



## Tomax (5. März 2008)

Ist aber auch mit PHP realisierbar.
Lass dir einfach mal mit print_r das array ausspucken, dann siehste ja was er dir so liefert un mit eregi oder so also einzeln parsen.
Aber wenn das mit dem ArmoryParser so easy is ;_;


----------



## ScHaDoWeYe (5. März 2008)

An alle die das nicht raffen: Datt is datt Pöse Brogrammieren wadd au die von Plidzard & Co macken^^

Das funktioniert so: ihr schreibt in den Editor ein paar Sachen die für den Normalsterblichen völlig zusammenhangslos sind, beginnt mit "Hello World" und beendet es mit "Kill Bill (Gates)"

Danach speichert ihr das ab und lasst euer Programm, oder was auch immer es sein sollte auf dem Desktop verstauben.

/Idiotismus off

Im Ernst ich hab net viel Plan von dem aber ich wünsch dir viel erfolg! BtW. ist das was du machst dann auch für andere Gildenseiten verwendbar? bzw. stellst du das irgendwo zur verfügung? oder ist das ne Frage wo man hier nicht stellen kann? 

mfG S"c"hadoweye


----------



## Bawagrog (5. März 2008)

Also ich hab jetzt ein paar fortschritte gemacht 


			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        

 ich hol mir mit substr und so die infos aus dem quelltext den ich per file_get_contents bekomme. Das klappt garnicht mal so schlecht 


			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        

 dachte nur es gäbe vlt. eine einfachere möglichkeit.


> ist das was du machst dann auch für andere Gildenseiten verwendbar? bzw. stellst du das irgendwo zur verfügung? oder ist das ne Frage wo man hier nicht stellen kann?


wenn ich fertig bin kann ich das gerne mal so umbauen das man es auf anderen Gildenseiten verwenden kann. Das dauert aber bestimmt noch ein bischen 


			Dieser Inhalt steht nur eingeloggten Mitgliedern zur Verfügung.
        



edit: das mit dem amory parser ist ja nur so "einfach" weil es eine library ist. Dahinter steckt ja jede menge von dem zeug was ScHaDoWeYe beschreibt^^


----------



## Vaan (5. März 2008)

Ich weiß nicht ob das umbedingt sinnvoll ist... wenn ihr neuzugänge in der Gilde habt und pech habt wird der Char in der aktuellen und der alten Gilde gelistet und egal auf welchen man kommt wird als Gilden namen noch der alte angezeigt... so its bei nem Kumpel von mir der Seit 2 Monaten in ner anderen Gilde ist... ist im Armory immer noch in der exgilde...


----------



## Bawagrog (5. März 2008)

Hm ich habe den selben fehler, aber bei mir wird beim abrufen des chars die neue gilde angezeigt und nur im suchfenster die alte. 
Ist aber im grunde egal, weil es nicht darum geht die gildendaten abzufragen, sondern z.B. die Stats wie Hp/Skillung/spelldmg(/evtl. auch equipment). etc. um eine übersicht zu haben welches equipment und so die leute, die für den Raid angemeldet sind haben.


----------



## Lexis Cuhein (6. März 2008)

Bawagrog, ich würde Dir wirklich raten Dich einfach mal etwas über XML-Parsing mit PHP zu informieren,
wenn Du einigermassen mit PHP umgehen kannst stellt das kein allzu grosses Problem dar.

Der Weg Dir alles über substr() einzeln herauszuholen ist recht aufwendig und bringt natürlich auch
Schwierigkeiten mit sich wenn sich die Element-Namen oder die gesamte XML-Struktur ändert.

PHP XML Referenz mit Code-Beispielen

Für Deine Zwecke könnte auch SimpleXML ganz brauchbar sein, da Du die Element-Namen, die Du 
ausgibst ja schon kennst und somit direkt ansprechen kannst:

Simple XML

Als Filehandle übergibst Du dann natürlich keine Datei oder ein vordefiniertes XML-Doc in einer Variable
sondern den Output Deiner Socket-Connection.

Hoffe das hilft!

Grüße,

Lexis


----------



## Bestla (2. April 2008)

Ich hab das gleiche Problem, die Idee die PHP-Möglichkeiten zum XML parsen zu nutzen hatte ich auch schon. Nur leider gibt file_get_contents keine schöne XML-Datei zurück, sondern die HTML formatierte Arsenal-Seite. 

Die Frage ist also weniger "Wie krieg ich die Daten extrahiert?", sondern vielmehr "Wie krieg ich die XML-Datei, die im Arsenal als Quellcode angegeben wird?".

Wenn da jemand eine Lösung hat, würde das einigen schon einen Schritt weiterhelfen.


----------



## 44203215 (15. September 2009)

Bestla schrieb:


> Ich hab das gleiche Problem, die Idee die PHP-Möglichkeiten zum XML parsen zu nutzen hatte ich auch schon. Nur leider gibt file_get_contents keine schöne XML-Datei zurück, sondern die HTML formatierte Arsenal-Seite.
> 
> Die Frage ist also weniger "Wie krieg ich die Daten extrahiert?", sondern vielmehr "Wie krieg ich die XML-Datei, die im Arsenal als Quellcode angegeben wird?".
> 
> Wenn da jemand eine Lösung hat, würde das einigen schon einen Schritt weiterhelfen.



Der Firefox gibt das richtige File mit "Quellcode anzeigen zurück".

hyperfull-cybernights.com (Unter C++ findet man eine OOP Lösung zu dem Problem die man leicht in PHP 5 umsetzen kann.)


----------



## Dagonzo (15. September 2009)

Schön das du noch mal einen 1,5 Jahre alten Thread rausgekramt hast. Meinst du das es den Fragesteller noch interessiert? GZ zu deinem ersten aber leider auch recht sinnlosen Beitrag.


----------



## Rethelion (15. September 2009)

44203215 schrieb:


> Der Firefox gibt das richtige File mit "Quellcode anzeigen zurück".
> 
> *Link entfernt*



Hört sich irgendwie nach Werbung an, wahrscheinlich über google auf den Thread gestoßen.


----------



## Raefael (15. September 2009)

Dachte ich auch erst, aber die Seite belehrt einen dann doch eines besseren.

//Rafa


----------

