2010-02-20 56 views
0

我有這樣的代碼/函數方法,在PHP類的一部分:XML解析

function defaulthome(){ 


    $fp = null; 
    $err =''; 
    $xml_parser = xml_parser_create();  
    $rss_parser = new Rssparser();  
    xml_set_object($xml_parser,&$rss_parser);  
    xml_set_element_handler($xml_parser, "startElement", "endElement");  
    xml_set_character_data_handler($xml_parser, "characterData");  
    $fp = fopen("http://gulfnews.com/cmlink/business-rss-feed-1.446098?localLinksEnabled=false","r"); 

     if(!$fp) $err = "Error reading RSS data."; 
     else { 

      $count = 0; 

      while ($data = fread($fp, 4096) && $count<10) { 
       xml_parse($xml_parser, $data, feof($fp)) or $err=xml_error_string(xml_get_error_code($xml_parser)); 


       $count++; 
      } 


    } 

    fclose($fp);  
    xml_parser_free($xml_parser); 

    $content_sect2 = $this->tnjn->render('forms/landlords_prompt.phtml'); 
    $context = array('content1_title'=>'Welcome to my website','content1_article'=>"test article", 'feeds'=>$err); 
    $output = $this->tnjn->render("default.phtml", $context); 
    return $output; 

}

我沒有得到的結果和錯誤我已經是空文件!有誰知道哪部分代碼是問題?

非常感謝!

+0

抱歉,我剛剛解決了我自己。在$ data = fread()的同時,應該首先在&& $ count之前限定該部分。對不起大家。 – jan 2010-02-20 17:18:42

+0

你似乎沒有對實際解析的數據做任何事情,你似乎只是在做任何錯誤($ err)。 – 2010-02-20 17:19:55

+0

是的,我正在測試它的任何錯誤 – jan 2010-02-24 14:59:35

回答

0

看看是否打開錯誤報告提供的任何信息。 error_reporting(E_ALL);

0

你爲什麼試圖用fopen得到xml? 而是嘗試使用simplexml_load_file()獲取xml;

if (!$xml = simplexml_load_file("http://domain.com/rss.xml")) 
{ 
      echo('Unable to load or parse search results feed'); 
     } 
     if (!count($entries = $xml->entry)) { 
      echo('No entry found'); 
     } 
     for($i=0;$i<count($entries);$i++) 
     { 
      echo $entries->autor; 
     }