Parsowanie xml do tablicy

0

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??

0

Sam doszedłem :) Dla zainteresowanych...

Funkcja wygląda następująco:

function xml2phpArray($xml,$arr,$s)
{
	$z=0;
        foreach($xml->children() as $b)
	{
		if($z == 0)$s = $s.'&laquo;'; 
                $a = $b->getName();
		$c = $s.' '.$b->attributes()->name;
		
		array_push($arr,array($a,$c));

		$arr2 = array();
		$arr2 = xml2phpArray($b,$arr2,$s);
			
		for($x=0;$x<count($arr2);$x++)
		{array_push($arr,$arr2[$x]);}
		$z++;	
        }
        return $arr;	
}
$xml = simplexml_load_file('../mycms_content.xml')->pages;
$array = xml2phpArray($xml,array(),'');
echo json_encode($array);

a wynik z poziomami drzewa xml do wrzucenia w <select>:
[["index-p1","« Start"],["oferta-p2","« Oferta"],["projekt-p4","«« Projekt"],["opis-p5","««« Opis"],["foto-p6","«« Foto"],["kontakt-p3","« Kontakt"]]

1 użytkowników online, w tym zalogowanych: 0, gości: 1