Buondì.
Ho un file XML contente il seguente codice:
codice:
<evento>
<date>
<data>09-07-2005</data>
<dataI>09-07-2005</dataI>
<dataF>09-07-2005</dataF>
</date>
<titolo>UNA BIRRA PER L'ESTATE</titolo>
<descrizione>Concorso per hombrewers ormai collaudato.
Si svolgerà a Piozzo presso il mibrobirrificio Le
Baladin.
[..CUT..]
Il 8-9-10 Luglio
dalle ore 22 presso Le Baladin manifestazioni a
carattere musicale"</descrizione>
<link>http://www.hobbybirra.it/piozzo2005/</link>
</evento>
Quando effettuo il parsing mi visualizza tutti i campi correttamente tranne "descrizione": in prativa vedo solamente l'ultima riga, ovvero tutto quello che viene dopo l'ultimo "
"
Il codice che uso per il parsing è il seguente:
codice:
$file = 'eventi.xml';
$stack = array();
function startTag($parser, $name, $attrs)
{
global $stack;
$tag=array("name"=>$name,"attrs"=>$attrs);
array_push($stack,$tag);
}
function cdata($parser, $cdata)
{
global $stack,$i;
if(trim($cdata))
{
$stack[count($stack)-1]['cdata']=$cdata;
}
}
function endTag($parser, $name)
{
global $stack;
$stack[count($stack)-2]['children'][] = $stack[count($stack)-1];
array_pop($stack);
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startTag", "endTag");
xml_set_character_data_handler($xml_parser, "cdata");
$data = xml_parse($xml_parser,file_get_contents($file));
if(!$data) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
xml_parser_free($xml_parser);
Non capisco dove sia la causa del problema....