Ich versuche, Werte aus einer XML-Datei zu erhalten, aber ich habe ein Problem. Einer der Tag-Namen beginnt mit "@". Ich bekomme also einen Fehler.Wie bekomme ich Werte von XML, die "@" am Anfang des Tag-Namens hat?
Das ist mein xml
object(SimpleXMLElement)#537 (1) { ["urun"]=> array(5225) { [0]=> object(SimpleXMLElement)#547 (1) { ["@attributes"]=> array(7) { ["id"]=> string(4) "2972" ["secenekid"]=> string(1) "4" ["grup"]=> string(4) "YAŞ" ["ozellik"]=> string(1) "1" ["fiyat"]=> string(1) "0" ["agirlik"]=> string(1) "0" ["Stok"]=> string(1) "0" } } [1]=> object(SimpleXMLElement)#548 (1) { ["@attributes"]=> array(7) { ["id"]=> string(4) "2972" ["secenekid"]=> string(1) "5" ["grup"]=> string(4) "YAŞ" ["ozellik"]=> string(1) "2" ["fiyat"]=> string(1) "0" ["agirlik"]=> string(1) "0" ["Stok"]=> string(1) "0" } }
ich so zu bekommen bin versucht.
$url = "http://xx.com";
$xml = simplexml_load_file($url);
foreach($xml->urun->@attributes as $val) {
echo $val->id;
}
und das ist der Fehler, was ich sehe
syntax error, unexpected '@', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$'
so was soll ich für Sie wissen, dass zu lösen?
Danke.
'foreach ($ xml-> urun-> Attribute() als Schlüssel $ => $ val)' – splash58
Wenn Ihr Dokument hat wirklich Tag-Namen beginnend mit '@', dann Es ist kein XML. – kjhughes
Verwechseln Sie nicht SimpleXMLs Debug-Ausgabe für die tatsächlichen Daten - hier sind große Unterschiede. – ThW