ciao, grazie per aver risposto.
Sì, ho messo il contenuto del file XML in $file
Codice PHP:
$file = "segnalazione.xml";
ho provato nella stessa maniera a fare:
Codice PHP:
$file = get_content();
ma il tutto si blocca alla riga dove fa il controllo della lunghezza del file che ovviamente nel mio caso non serve perché non è un file.
di seguito metto tutto il codice del parser che ho scritto per il file XML
Codice PHP:
<?php $file = "segnalazione.xml";
function startElement($paser, $name, $attrib)
{
echo "Apertura del tag: $name
";
if(sizeof($attrib))
{
echo "attributi:";
while (list($key, $val) = each($attrib))
echo "$key = $val";
echo "
";
}
}
function endElement ($parser, $name)
{
echo "Chiusura del tag: $name
";
}
function characterData ($parser, $data)
{
if (trim($data) != "")
echo "Valore: $data
";
}
?>
<?php
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($f = @fopen($file, "r")))
die("Impossibile aprire il file per il parsing");
echo "[b]Inizio parsing[/b]
";
while ($data = fread($f, 4096))
{
if (!xml_parse($xml_parser, $data, feof($f)))
{
die(sprintf("%s(%d): %s
", $file, xml_get_current_line_number($xml_parser), xml_error_string(xml_get_error_code($xml_parser))));
}
echo "[b]Parsing completato[/b]";
xml_parser_free($xml_parser);
}
?>