Чтение возвращенного XML по функции с помощью SimpleXML - PullRequest
0 голосов
/ 18 августа 2010

Объяснять это немного запутанно, поэтому заранее благодарю вас за поддержку.

Я использую PHP-инфраструктуру 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;

Контроллер работает следующим образом ... Это самое близкое, что я могу придумать, как это сделать.* Возвращает пустой документ с 44 пустыми строками.Любое направление будет полезно.

Ответы [ 2 ]

3 голосов
/ 18 августа 2010

вместо использования конструктора simpleXML попробуйте использовать функцию simplexml_load_string ()

0 голосов
/ 20 августа 2010

Попробуйте изменить возврат вашего фида $ xml на:

return echo $o;
...