Witam.
Mam pewien problem. Chciałbym wczytać drzewo xml do tablicy, która ajaxem poleci do strony wyjściowej i wyświetlana będzie w obiekcie html <select>.
Dokument xml:
<pages>
<index-p1 name="Start"/>
<oferta-p2 name="Oferta">
<projekt-p4 name="Projekt">
<opis-p5 name="Opis"/>
</projekt-p4>
<foto-p6 name="Foto"/>
</oferta-p2>
<kontakt-p3 name="Kontakt"/>
</pages>
Kod PHP:
function xml2phpArray($xml,$arr,$x,$s)
{
$z = 0;
foreach($xml->children() as $b)
{
$a = $b->getName().'';
$c = $b->attributes()->name.'';
if(!$b->children())
{
//$arr[$x][0] = $a.'';
//$arr[$x][1] = $c.'';
//echo $x.'-'.$arr[$x][0].', ';
}
else
{
$arr[$x][0] = $a;
$arr[$x][1] = $c;
if($z == 0)$s = $s.'»';
echo $s.' '.$arr[$x][0].', ';
xml2phpArray($b,$arr,$x,$s);
}
$x++;
$z++;
}
return $arr;
}
$xml = simplexml_load_string(file_get_contents('../content.xml'))->pages;
$array = xml2phpArray($xml,array(),0,'');
echo json_encode($array);
Wynik:
» index-p1, » oferta-p2, »» projekt-p4, »»» opis-p5, »» foto-p6, » kontakt-p3, [["index-p1","Start"],["oferta-p2","Oferta"],["kontakt-p3","Kontakt"]]
Elementy wyświetlają się po echo w odpowiedniej kolejności lecz nie wiem jak w takiej kolejności zapisać je do tablicy.
Bardzo prawdopodobne jest również to, że zabieram się do tego od złej strony. Może jest jakiś łatwiejszy sposób??