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.
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");
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):
Code:
<cats>
<cat name="Jack" age="2" color="grey" color="white"/>
<cat name="Maxwell" age="12" color="orange" color="black"/>
</cats>
Ich hoffe ihr könnt mir helfen.