Salve a tutti,
sono giorni (4!!!) che sto diventando pazzo per fare il parsing (ricorsivo) dell'xml qui sotto! Cio' che vorrei ottenere e' una lista con i vari tag html, ma proprio non mi riesce! Per ora ho sempre utilizzato la simplexml ma credo di essere andato nella direzione sbagliata... ho problemi infatti ad aprire e chiudere i tag in presenza di figli... Forse sto sbagliando approccio? Vorrei evitare xls... vi riporto il codice scritto sperando in un vostro preziosissimo aiuto

grazie infinitamente a tutti
cucca

Codice PHP:
foreach($mod as $k=>$v){
  
$xml simplexml_load_file(MODULES_DIR."/".$k.'/menu.xml');
  
$result.=get_tree($xml,MODULES_URL."/".$k);
 }
 
$result.="[/list]\n";

 return 
$result;
}


function 
get_tree($xml,$baseurl,$sub=0){

 foreach(
$xml->item as $children){
  if (!
$children->menu)
   continue;

  if(
$sub==1){
   
$result.="\t<ul>\n";
   
$descr=$children->description;
  }else{
   
$descr=$children->description;
  }

  
$result .= "\t[*]\n";

  if (isset(
$children->link)){
   
$result .= "\t\t<a href=\"".$baseurl."/".$children->link."\" 
title=\""
.$descr."\">".$children->menu."</a>\n";
  } else {
   
$result .= "\t\t<a href=\"#\" title=\"".$descr."\" 
class=\"continua\">"
.$children->menu."</a>\n";
  }

  
$result .= get_tree($children,$baseurl,1);
  
$result .= "\t\n";

  if(
$sub==1)
   
$result.="\t[/list]\n";
 }

 return 
$result;


Codice PHP:
<?xml version='1.0' standalone='yes'?>
<menu_item>
    <item>
        <name>Prima Voce</name>
        <menu>Prima Voce</menu>
        <description>Prima Voce</description>
        <link>#</link>
        <item>
            <name>Prima Sotto Voce</name>
            <menu>Prima Sotto Voce</menu>
            <description>Prima Sotto Voce</description>
            <link>#</link>
        </item>    
        <item>
            <name>Seconda Sotto Voce</name>
            <menu>Seconda Sotto Voce</menu>
            <description>#</description>
            <item>
                <name>Prima SSotto Voce</name>
                <menu>Prima SSotto Voce</menu>
                <description>Prima SSotto Voce</description>
                <link>#</link>
            </item>    
            <item>
                <name>Seconda SSotto Voce</name>
                <menu>Seconda SSotto Voce</menu>
                <description>Seconda SSotto Voce</description>
                <link>#</link>
            </item>    
            <item>
                <name>Terza SSotto Voce</name>
                <menu>Terza SSotto Voce</menu>
                <description>Terza SSotto Voce</description>
                <link>#</link>
            </item>    
        </item>
        <item>
            <name>Terza Sotto Voce</name>
            <menu>Terza Sotto Voce</menu>
            <description>Terza Sotto Voce</description>
            <link>#</link>
        </item>
    </item>
</menu_item>
cio' che vorrei ottenere:
Codice PHP:
<ul class="menuNavigazione">
    [*][
url="#"]Prima Voce[/url]
    [*][
url="#"]Seconda Voce[/url]
        <
ul>
            [*][
url="#"]Prima Sotto Voce[/url]
            [*][
url="#"]Seconda Sotto Voce[/url]
                <
ul>
                    [*][
url="#"]Prima SSotto Voce[/url]
                    [*][
url="#"]Seconda SSotto Voce[/url]
                    [*][
url="#"]Terza SSotto Voce[/url]
                [/list]
            
                [*][
url="#"]Terza Sotto Voce[/url]
        [/list]
    
    [*][
url="#"]Terza Voce[/url]
        <
ul>
            [*][
url="#"]Prima Sotto Voce[/url]
            [*][
url="#"]Seconda Sotto Voce[/url]
            [*][
url="#"]Terza Sotto Voce[/url]
        [/list]
    
    [*][
url="#"]Quarta Voce[/url]
    [*][
url="#"]Quinta Voce[/url][/list]