Hallo,
ich habe ein Problem, dasss ich schon seit Tagen nicht lösen kann. Und zwar möchte ich eine XML-Datei, die immer unterschiedlich aussehen kann dynamisch auslesen. Da hab ich in der PHP Dokumentation ein Beispiel gefunden, dass eigentlich sehr hilfreich ist.
Aber meine XML-Datei is so aufgebaut, dass die Werte der Unterelemente als Attribute in meinem Tag stehen. Und da komm ich einfach nicht weiter. Ich hab schon vieles ausprobiert, aber ich scheiter immer wieder.
(so ungefähr könnte die XML-Datei aussehen):
Ich hoffe ihr könnt mir helfen.
ich habe ein Problem, dasss ich schon seit Tagen nicht lösen kann. Und zwar möchte ich eine XML-Datei, die immer unterschiedlich aussehen kann dynamisch auslesen. Da hab ich in der PHP Dokumentation ein Beispiel gefunden, dass eigentlich sehr hilfreich ist.
Code:
<cats> <cat> <name>Jack</name> <age>2</age> <color>grey</color> <color>white</color> </cat> <cat> <name>Maxwell</name> <age>12</age> <color>orange</color> <color>black</color> </cat> </cats>
PHP-Code:
<?php
function xmlToArray($fName){
$sxi = new SimpleXMLIterator($fName,null,true);
return sxiToArray($sxi);
}
function sxiToArray($sxi){
$a = array();
for ($sxi->rewind(); $sxi->valid(); $sxi->next()){
if (!array_key_exists($sxi->key(), $a)){
$a[$sxi->key()] = array();
}
if($sxi->hasChildren()){
$a[$sxi->key()][] = sxiToArray($sxi->current());
}else{
$a[$sxi->key()][] = strval($sxi->current());
}
}
return $a;
}
$test = xmlToArray("cats.xml");
(so ungefähr könnte die XML-Datei aussehen):
Code:
<cats> <cat name="Jack" age="2" color="grey" color="white"/> <cat name="Maxwell" age="12" color="orange" color="black"/> </cats>
Kommentar