Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    parse xml, problema con <br>

    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....

  2. #2
    prova ad usare il <![CDATA[ ... ]]> nel XML; qualcosa del genere:

    codice:
    <descrizione><![CDATA[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>
    in questo modo dovrebbe prenderti tutto il contenuto del tag <descrizione> senza nessuna modifica e senza interpretare gli eventuali tag html

  3. #3
    Thanks: così va meglio.
    In compenso sono comparsi altri problemi di cui non ho ancora trovato la causa :P
    Grazie & Ciao!

  4. #4
    ti consiglio la classe 'lastRSS' che parserizza molto molto bene...

    ti do pure il link va...
    get here lastRSS

    Silent Engine

    <?="hello world"?>

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.