Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    10

    PHP e SAX: ma dove sta l'errore nell'elaborazione?

    Salve ragazzi potete aiutarmi con questo codice?
    Non mi funziona? Piu specificamente durante l'elaborazione non mi riempe l'array $rss_channel_info e il primo elemento (ossia l'indice 0) dell' array $rss_items



    codice:
    <?php
    
     define("XML_RSS", 0);
     define("XML_CHANNEL", 1);
     define("XML_ITEM", 2);
    
     // function xml_start_element_handler
     function xml_start_element_handler($xml_parser, $element_name, $attributes) {
     
      if($element_name=="CHANNEL")
    	$GLOBALS["xml_current_node"]=XML_CHANNEL;
      else if($element_name=="ITEM")
    	$GLOBALS["xml_current_node"]=XML_ITEM;
    
      $GLOBALS["xml_current_tag_state"]=$element_name;
     }
    
     // function xml_end_element_handler
     function xml_end_element_handler($xml_parser, $element_name) {
    
      if($element_name=="ITEM")
    	$GLOBALS["xml_items_counter"]++;
     }
    
     // function xml_character_data_handler
     function xml_character_data_handler($xml_parser, $data) {
    
      switch($GLOBALS["xml_current_node"]) {
       case XML_ITEM:
    
    	if($GLOBALS["xml_current_tag_state"]=="TITLE")
    		$GLOBALS["rss_items"][$GLOBALS["xml_items_counter"]]["title"]=$data;
    	else if($GLOBALS["xml_current_tag_state"]=="DESCRIPTION")
    		$GLOBALS["rss_items"][$GLOBALS["xml_items_counter"]]["description"]=$data;
    	else if($GLOBALS["xml_current_tag_state"]=="LINK")
    		$GLOBALS["rss_items"][$GLOBALS["xml_items_counter"]]["link"]=$data;
    
    	break;
       case XML_CHANNEL:
    
    	if($GLOBALS["xml_current_tag_state"]=="TITLE")
    		$GLOBALS["rss_channel_info"]["title"]=$data;
    	else if($GLOBALS["xml_current_tag_state"]=="DESCRIPTION")
    		$GLOBALS["rss_channel_info"]["description"]=$data;
    	else if($GLOBALS["xml_current_tag_state"]=="LANGUAGE")
    		$GLOBALS["rss_channel_info"]["language"]=$data;
    	break;
      }
     }
    
     $file_name="./rss.xml";
     $xml_current_tag_state="";
     $xml_current_node=-1;
     $xml_items_counter=0;
     $rss_channel_info=array();
     $rss_items=array();
    
    
     $xml_parser=xml_parser_create("utf-8");
     xml_set_element_handler($xml_parser, "xml_start_element_handler", "xml_end_element_handler");
     xml_set_character_data_handler($xml_parser, "xml_character_data_handler");
    
     if(!$fp=fopen($file_name, "r")) die("Impossibile aprire il file RSS.");
     while($data=fread($fp, 5120)) if(!xml_parse($xml_parser, $data, feof($fp))) die("Impossibile analizzare il file RSS.");
     fclose($fp);
     xml_parser_free($xml_parser);
    
     print_r($rss_channel_info);
     print("<hr>");
     print_r($rss_items);
    
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    10

    up

    up

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.