Codice PHP:
$filename="file.xml";
if(!($fp = fopen("$filename" , "r")))
die("Non posso aprire il file");
$elenco_counter = 0;
$elenco_data = array();
$xml_current_tag_state = '';
function startElementHandler($parser, $element_name, $element_attribs)
{
global $elenco_counter;
global $elenco_data;
global $xml_current_tag_state;
$xml_current_tag_state = $element_name;
}
function endElementHandler($parser, $element_name)
{
global $elenco_counter;
global $elenco_data;
global $xml_current_tag_state;
$xml_current_tag_state = '';
if( $element_name == "CD" )
{
$elenco_counter++;
}
}
function characterDataHandler($parser , $data)
{
global $elenco_counter;
global $elenco_data;
global $xml_current_tag_state;
if( $xml_current_tag_state == '' )
return;
if( $xml_current_tag_state == "TITLE" )
{
$elenco_data[$elenco_counter]["title"] = $data;
}
if( $xml_current_tag_state == "ARTIST" )
{
$elenco_data[$elenco_counter]["artist"] = $data;
}
if( $xml_current_tag_state == "YEAR" )
{
$elenco_data[$elenco_counter]["year"] = $data;
}
}
if( !($xml_parser = xml_parser_create()) )
die("Non riesco a creare il parser XML");
xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler($xml_parser, "characterDataHandler");
while( $data = fread($fp, 4096))
{
if( !xml_parse($xml_parser, $data, feof($fp)))
{
break;
}
}
//libero la memoria
xml_parser_free($xml_parser);
poi per leggere i dati:
Codice PHP:
<?php
for($i=0 ; $i < $elenco_counter ; ++$i)
{
//decommenta la riga sottostante se vuoi l'id della news
//echo $i . "
\n";
echo "Title: " . $elenco_data[$i]["title"] . "
\n";
echo "Artist: " . $elenco_data[$i]["artist"] . "
\n";
echo "Year: " . $elenco_data[$i]["year"] . "
\n";
echo "
\n";
}
?>