Daten aus Arsenal auslesen

  • Ersteller Ersteller Bawagrog
  • Erstellt am Erstellt am
B

Bawagrog

Guest
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:
Code:
		<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?
 
probiers ma mit nem Armoryparser^^
 
Zuletzt bearbeitet von einem Moderator:
Sorry aber selbst google hat keine antwort auf den begriff amoryparser
wink.gif
Meinst du vlt mit einem xml parser? Damit hab ich leider keinerlei erfahrung...
 
würde gerne helfen, aba bis jetz is nur bahnhof bei mir angekommen^^
 
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 ;_;
 
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
 
Also ich hab jetzt ein paar fortschritte gemacht
smile.gif
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
smile.gif
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
smile.gif


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^^
 
Zuletzt bearbeitet:
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...
 
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.
 
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
 
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.
 
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.)
 
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.
 
Dachte ich auch erst, aber die Seite belehrt einen dann doch eines besseren.

//Rafa
 
Zurück