-
problema con XML
Ciao a tutti. Ho un piccolo problema con XML.
Nel mio sito ho deciso di costruire il menu principale usando un file XML che contenga la definizione dello stesso. Il codice è il seguente:
Codice PHP:
$defMenuHTML = '<table width="100%" border="0" class="MMenu" cellpadding="0" cellspacing="0">';
$defMenuHTML .= '<tr>';
$xmlDef = 'main_menu_header.xml';
$defMenuXML = new DOMDocument();
$defMenuXMl->load($xmlDef);
$menuVoices = $defMenuXML->getElementsByTagName('menu/vocimenu/voce');
foreach($menuVoices as $voice)
{
$tipoRef = $voice->getElementsByTagName('tiporif')->item(0)->nodeValue;
$rif = $voice->getElementsByTagName('riferimento')->item(0)->nodeValue;
$titolo = $voice->getElementsByTagName('titolo')->item(0)->nodeValue;
if ($tipoRif == 'div')
{
$defMenuHTML .= '<td><a href=#'.$rif.'>'.$titolo.'</a></td>';
}
}
$defMenuHTML .= '</tr></table>';
echo $defMenuHTML;
il file xml è:
Codice HTML:
<menu>
<vocimenu>
<voce>
<titolo>CHI SIAMO</titolo>
<tiporif>div</tiporif>
<riferimento>tabWho</riferimento>
</voce>
<voce>
<titolo>NEWS</titolo>
<tiporif>div</tiporif>
<riferimento>tabNews</riferimento>
</voce>
<voce>
<titolo>REGATE</titolo>
<tiporif>div</tiporif>
<riferimento>tabRegate</riferimento>
</voce>
</vocimenu>
</menu>
All'esecuzione da il messaggio:
Codice:
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /membri2/iovelista/main_menu_header.php on line 10
ho provato in diversi modi ma mi da sempre lo stesso errore.
Qualcuno mi sa dare una mano??
Grz
-
Sposta lo script nella cartella "php5", lì dovrebbe funzionare senza problemi.
Ti faccio notare un erroretto di battitura:
Codice PHP:
$defMenuXMl->load($xmlDef);
Dovrebbe essere:
Codice PHP:
$defMenuXML->load($xmlDef);
Ciao!
-
OK, provo subito.
Grazie
EDIT: Ho creato la cartella PHP5 nella root e ho salvato qui dentro i file e cambiato i riferimenti (PHP5/main_menu_header.php): il risultato non è cambiato.
Forse non ho capito bene quello che dovevo fare??
-
La cartella deve chiamarsi "php5" e non "PHP5".
Io l'avevo scritto in maiuscolo per evidenziarlo.
Ciao!
-
Ho provato anche con php5 in minuscolo ma il risultato è lo stesso.
Chiaramente ho sistemato anche i riferimenti nel codice php.
-
Se l'errore è sempre quello, indica qual è la riga 10.
-
LA riga 10 è la seguente:
$tipoRef = $voice->getElementsByTagName('tiporif')->item(0)->nodeValue;
Ho provato anche a usare simplexml per navigare nel file xml ma all'accesso alla pagina mi dice che non è definita la funzione simplexml_load_file. Mi chiedo però una cosa: a me risulta che questa sia un'estensione di default in php5. Ma su altervista non girà php5? O sbaglio qualche cosa?
ciao