Ciao a tutti

ho un problema con questo parser XML

Codice PHP:
$filename="file che restituisce un xml da analizzare";
    if( ! (
$fp fopen"$filename"r" )) )die("Couldn't open xml file!");
    
$person_counter 0;
    
$person_data = array();
    
$xml_current_tag_state '';

    function 
startElementHandler$parser$element_name$element_attribs ) {
        global 
$person_counter;
        global 
$person_data;
        global 
$xml_current_tag_state;
        
$xml_current_tag_state $element_name;
    }
    
    function 
endElementHandler$parser$element_name ) {
        global 
$person_counter;
        global 
$person_data;
        global 
$xml_current_tag_state;
        
$xml_current_tag_state '';
        
        if( 
$element_name == "MATCH" ) {
            
$person_counter++;
        }
    }

    function 
characterDataHandler$parser $data ) {
        global 
$person_counter;
        global 
$person_data;
        global 
$xml_current_tag_state;
        
        if( 
$xml_current_tag_state == '' )    return;
        if( 
$xml_current_tag_state == "ITEM" $person_data[$person_counter]["item"] = $data;
        if( 
$xml_current_tag_state == "FID" $person_data[$person_counter]["fid"] = $data;
        if( 
$xml_current_tag_state == "PRODUCTNAME" $person_data[$person_counter]["productname"] = $data;
        if( 
$xml_current_tag_state == "DESCRIPTION" $person_data[$person_counter]["description"] = $data;
        if( 
$xml_current_tag_state == "BRAND" $person_data[$person_counter]["brand"] = $data;
        if( 
$xml_current_tag_state == "MODEL" $person_data[$person_counter]["model"] = $data;
        if( 
$xml_current_tag_state == "YEAR" $person_data[$person_counter]["year"] = $data;
        if( 
$xml_current_tag_state == "NOTE" $person_data[$person_counter]["note"] = $data;
        if( 
$xml_current_tag_state == "ARTICLENO" $person_data[$person_counter]["articleno"] = $data;

//se vuoi aggiungere altri campi xml 
//if( $xml_current_tag_state == "NUOVO_TAG_XML" ) {
//$person_data[$person_counter]["codice"] = $data;
//}
        
}

if( !(
$xml_parser xml_parser_create()) ) die("Couldn't create XML parser!");

xml_set_element_handler($xml_parser"startElementHandler""endElementHandler");
xml_set_character_data_handler($xml_parser"characterDataHandler");

while( 
$data fread($fp4096) ) {
    if( !
xml_parse($xml_parser$datafeof($fp)) ) {
        break; 
// get out of while loop if we're done with the file
        
}
    }
xml_parser_free($xml_parser); 
All'interno della stringa descrizione (in qualche caso) trovo una parola del tipo ("-thread).
Questo provoca un bel problema... ovvero tutto il resto della descrizione non viene restituito, ma solamente -thread).

A rigor di logica credo che il problema sia il doppio slash... tuttavia non sono riuscito in alcun modo ad eliminare questo problema.

Qualcuno mi può aiutare?? grazie