PHP || Wert eines Attributes einer XML-Datei auslesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
attribut
aufbau
code
dank
datei
dokument
eins
ewigkeit
fehler
helfen
installation
jemand
klappen
problem
testen
url
vergessen
vorhandensein
warnung
wissen
-
Habe ein Problem dabei, den Wert eines Attributes einer XML-Datei über PHP auszulesen.
Ich bekomme einfach keinen Wert zurück.
Generell geht es darum, jede "row" auf vorhandensein des Attributes "rawQuantity" zu überprüfen.
Ist das Attribut vorhanden, soll einfach sein Wert ausgegeben werden.
Die XML-Datei ist folgendermaßen aufgebaut:
<eveapi version="2"> <currentTime>2012-04-20 15:36:02</currentTime> <result> <rowset name="assets" key="itemID" columns="itemID,locationID,typeID,quantity,flag,singleton"> <row itemID="206888503" locationID="60007168" typeID="1819" quantity="1" flag="4" singleton="0"/> <row itemID="1252706043" locationID="60007168" typeID="967" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> <row itemID="1413217407" locationID="60007168" typeID="1318" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> <row itemID="1001594515266" locationID="60007168" typeID="11082" quantity="1" flag="4" singleton="0"/> <row itemID="1001594519031" locationID="60007168" typeID="12207" quantity="1" flag="4" singleton="0"/> <row itemID="1005669663551" locationID="60007168" typeID="587" quantity="1" flag="4" singleton="1" rawQuantity="-1"> <row itemID="1005697415058" locationID="60007168" typeID="22555" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> <row itemID="1005830297705" locationID="60007168" typeID="11488" quantity="1" flag="4" singleton="1" rawQuantity="-1"> </rowset> </result> <cachedUntil>2012-04-20 20:22:18</cachedUntil> </eveapi>
Und mein Code dazu sieht so aus:
$xml = simplexml_load_file(xml-datei); foreach ($xml->result->rowset->row as $row) { if (isset($row[0]->rawQuantity) == true) { echo $row[0]->rawQuantity; } }
Ich nehme an, bei "rawQuantity" fehlt noch etwas....kann mir jemand auf die Sprünge helfen bitte? =) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
adelwoehrer schrieb:
Du hast in deinem XML-Dokument Fehler. Du hast ein paar mal vergessen, dass <tag> nicht das gleiche wie <tag/> ist...
Ich nehme an, bei "rawQuantity" fehlt noch etwas....kann mir jemand auf die Sprünge helfen bitte? =)
Hier das ausgebesserte XML-Dokument:
Beim PHP musst du eins wissen:<eveapi version="2"> <currentTime>2012-04-20 15:36:02</currentTime> <result> <rowset name="assets" key="itemID" columns="itemID,locationID,typeID,quantity,flag,singleton"> <row itemID="206888503" locationID="60007168" typeID="1819" quantity="1" flag="4" singleton="0"/> <row itemID="1252706043" locationID="60007168" typeID="967" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> <row itemID="1413217407" locationID="60007168" typeID="1318" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> <row itemID="1001594515266" locationID="60007168" typeID="11082" quantity="1" flag="4" singleton="0"/> <row itemID="1001594519031" locationID="60007168" typeID="12207" quantity="1" flag="4" singleton="0"/> <row itemID="1005669663551" locationID="60007168" typeID="587" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> <row itemID="1005697415058" locationID="60007168" typeID="22555" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> <row itemID="1005830297705" locationID="60007168" typeID="11488" quantity="1" flag="4" singleton="1" rawQuantity="-1"/> </rowset> </result> <cachedUntil>2012-04-20 20:22:18</cachedUntil> </eveapi>
Kindelemente sind Objektvariablen, Attribute hingegen werden wie ein assoziatives Array angesprochen.
Der ausgebesserte Code:$xml = simplexml_load_file(xml-datei); foreach($xml->result->rowset->row as $row) { if(isset($row['rawQuantity'])) { echo $row['rawQuantity']; } }
-
adelwoehrer schrieb:
Immerhin ist es kein valides XML...
Am Aufbau des XML-Dokumentes selbst kann ich leider nichts ändern, das ist eine API die ich von der Seite des Entwicklers beziehe.
Aber es scheint trotz Fehler alles zu klappen.
Der Parser (
) würde dir auch Warnungen werfen, nur sind die vermutlich deaktiviert worden (per .htaccess?).simplexml_load_file()
-
Deaktiviert habe ich nichts.
Da läuft einfach eine frische XAMPP Installation um das Script irgendwie testen zu können. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage