2010-08-18 7 views
0

Это своего рода путаница, чтобы объяснить, так что спасибо вам заранее за то, что вы со мной.Прочтите возвращенный XML по функции с SimpleXML

Я использую фреймворк Kohana для разработки приложения. У меня есть модельная функция, которая принимает параметры для поиска и должна возвращать страницу в стиле XML. Мне нужно, чтобы это прочитало контроллер с SimpleXML. Есть идеи, как это сделать?

$o = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
    $o .= "<feed>\n"; 
    $o .= "\t<search_phrase>$q</search_phrase>\n"; 

    if(isset($entries)){ 
     uasort($entries, 'compare_weight'); 

     /** 
     * Build the xml data 
     */ 

     foreach($modules as $module){ 
     $o .= "\t<search_location>$module</search_location>\n"; 
     } 

     foreach($entries as $k=>$entry){ 
      $o .= "\n\t<entry>\n"; 
      $o .= "\t\t<title>$entry[title]</title>\n"; 
      $o .= "\t\t<url>$entry[url]</url>\n"; 
      $o .= "\t\t<weight>$entry[weight]</weight>\n"; 
      $o .= "\t\t<module>$entry[module]</module>\n"; 

      if($entry['owners']){ 
       foreach($entry['owners'] as $owner){ 
        $o .= "\t\t<owners>\n"; 
        $o .= "\t\t\t<owner_id>$owner[owner_id]</owner_id>\n"; 
        $o .= "\t\t\t<owner_name>$owner[owner_name]</owner_name>\n"; 
        $o .= "\t\t\t<profile_link>$owner[profile_link]</profile_link>\n"; 
        $o .= "\t\t</owners>\n"; 
       } 
      } 

      $o .= "\t</entry>\n"; 
     }  
    }else{ 
     $o .= "\t<noresult>true</noresult>\n"; 
    } 

    $o .= "</feed>\n"; 

    return $o; 

Функции системы управления, как это ... Это ближайший я могу прийти к оборачивать голову, как это сделать.

$return= $this->search->search($_GET); 

    $xml = new SimpleXMLElement($return); 
    die($xml); 

Он возвращает пустой документ с 44 пустыми строками. Любое направление было бы полезно.

+0

Я предлагаю использовать DOMDocument построить свой XML, поскольку она обеспечивает надежную API. –

ответ

0

Попробуйте изменить возвращение вашего $ корма XML для:

return echo $o; 
+0

Это привело к синтаксической ошибке для меня. Спасибо за ответ. – bradenkeith