2 Stimmen

PHP - Parsen eines mit simplexml_load_string() erzeugten XML-Objekts

Ich versuche, einen Attributwert des Root-Knotens eines XML zu lesen, der in die simplexml_load_string()-Methode in PHP eingegeben wurde.

Hier ist ein Beispiel,

<data status="Active">
 <user> <userid> 1 </userid> </user>
 <user> <userid> 2 </userid> </user>
<data>

Ich versuche, den Wert von "status" in der obigen XML-Zeichenfolge zu lesen:

echo $xml->user[0]->userid;
echo $xml->attributes()->status

Auch die Erklärungen funktionieren nicht, var_dump() Ausgaben "NULL".

4voto

meder omuraliev Punkte 177513

echo (string)$userNode->attributes()->status sollte funktionieren

2voto

VolkerK Punkte 93746

Neben dem Attribute() Methode können Sie einfach auf die Attribute des Elements zugreifen, indem Sie das Elementobjekt wie ein Array behandeln (SimpleXMLElement implementiert ArrayAccess )

$xml = simplexml_load_string('<user status="Active"></user>');
echo 'status=', $xml['status'];

Aber um auf Attribute in anderen Namespaces zuzugreifen, müssen Sie attributes() verwenden (afaik).

0voto

Jake N Punkte 10308
$xml = simplexml_load_string('<user status="Active"></user>');

echo $xml->attributes()->status;

0voto

Immanuel Punkte 329

Danke für die Antworten... Das Parsing war nicht wirklich das Problem.

Ich habe die folgenden cURL-Parameter vermisst,

curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");

Ich habe einen booleschen Wert (cURL-Antwort) wie eine XML-Datei behandelt :)

Danke an alle...

0voto

kta Punkte 18216

Entschuldigung, aber in Ihrem XML-Beispiel haben Sie Ihr Ende nicht geschlossen <data> Tag.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X