Einzelnen Beitrag anzeigen
  #1  
Alt 13.10.2017, 18:39:04
oemer oemer ist offline
Anfänger
 
Registriert seit: Oct 2017
Alter: 40
Beiträge: 4
XML - Datei komplett dynamisch auslesen

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.
Mit Zitat antworten