Salve a tutti
Ho la necessità di estrapolare dei dati da un file .xml
il file xml è così strutturato:
codice:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE shopmenu [
<!ELEMENT shopmenu (submenu*)>
<!ELEMENT submenu (menuitem*)>
<!ELEMENT menuitem (title*, image*, link*, submenu*)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT image (#PCDATA)>
<!ELEMENT link (#PCDATA)>
]>
<shopmenu>
<submenu>
<menuitem>
<title>Monitor</title>
<link>cat049.php?n=1</link>
</menuitem>
<menuitem>
<title>Masterizzatori</title>
<link>cat050.php?n=1</link>
</menuitem>
<menuitem>
<title>Cartucce Compatibili</title>
<link>cat048.php?n=1</link>
</menuitem>
<menuitem>
<title>Inchiostri</title>
<link>cat044.php?n=1</link>
</menuitem>
<menuitem>
<title>Stampanti</title>
<link>cat045.php?n=1</link>
</menuitem>
<menuitem>
<title>Processori</title>
<link>cat047.php?n=1</link>
</menuitem>
</submenu>
</shopmenu>
Per leggere il file ho utilizzato sax di Php
con questo codice:
Codice PHP:
<?Php
$file = "shopmenu.xml";
function startElement($analizzatore, $nome, $attr){
print "[b]$nome =>[/b] ";
}
function endElement($analizzatore, $nome){
print "\n";
}
function characterData($analizzatore, $valore){
print "$valore
";
}
$simpleparser = xml_parser_create();
xml_set_element_handler($simpleparser, "startElement", "endElement");
xml_set_character_data_handler($simpleparser, "characterData");
$fp = fopen($file, "r");
while($data = fread($fp, filesize($file))){
if(!xml_parse($simpleparser, $data, feof($fp))){
print(xml_error_string(xml_get_error_code($simpleparser)));
}
//}
xml_parser_free($simpleparser);
?>
Ora il risultato è il seguente:
SHOPMENU =>
SUBMENU =>
MENUITEM =>
TITLE => Monitor
LINK => cat049.php?n=1
MENUITEM =>
TITLE => Masterizzatori
LINK => cat050.php?n=1
MENUITEM =>
TITLE => Cartucce Compatibili
LINK => cat048.php?n=1
MENUITEM =>
TITLE => Inchiostri
LINK => cat044.php?n=1
MENUITEM =>
TITLE => Stampanti
LINK => cat045.php?n=1
MENUITEM =>
TITLE => Processori
LINK => cat047.php?n=1
guida all'acquisto
condizioni di vendita
modalità di spedizione
acquista on line
Giovedì 25 Maggio 2006
SHOPMENU =>
SUBMENU =>
MENUITEM =>
TITLE => Monitor
LINK => cat049.php?n=1
MENUITEM =>
TITLE => Masterizzatori
LINK => cat050.php?n=1
MENUITEM =>
TITLE => Cartucce Compatibili
LINK => cat048.php?n=1
MENUITEM =>
TITLE => Inchiostri
LINK => cat044.php?n=1
MENUITEM =>
TITLE => Stampanti
LINK => cat045.php?n=1
MENUITEM =>
TITLE => Processori
LINK => cat047.php?n=1
La mia necessità è quella di estrapolare il valore del link per poi aggiungero come collegamento a dei pulsanti.