:best: Подскажите пожайлуста.... а совсем туго... Вообщем есть гет запрос на ай-пи-ай-ный сервер который возвращает ответ в виде хмл нужно преобразовать эт дело в нтмл. использовал пхп и курл библиотеку: 1. Обработчик-парсер Код (Text): <?php $_url = "http://api.dozory.ru/query/?rm=person_status&person_id=248&person_id=249&person_id=252"; // инициализация сеанса $ch = curl_init(); // установка URL и других необходимых параметров curl_setopt($ch, CURLOPT_URL, $_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // загрузка страницы и выдача её браузеру $data = curl_exec($ch); // завершение сеанса и освобождение ресурсов curl_close($ch); // Load the XML source $xml = new DOMDocument; //$xml->load('collection.xml'); $xsl = new DOMDocument; $xsl->load('collection.xsl'); // Configure the transformer $proc = new XSLTProcessor; $proc->importStyleSheet($xsl); // attach the xsl rules echo trim($proc->transformToDoc($data)->firstChild->wholeText); ?> 2. Шаблон для преобразования collection.xsl: Код (Text): <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:for-each select="content/person"> <xsl:value-of select="@id"/> <xsl:value-of select="@status"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Неработает - как еще эт мона сделать?... используется бесплатный хостинг
такой вариант попробовал : Код (Text): <?php // Массив, в котором будут сохранены атрибуты из XML файла $attrib = array(); // Читаем содержимое XML файла в строковую переменную $xml = "http://api.dozory.ru/query/?rm=person_status&person_id=248&person_id=249&person_id=252"; // Создаем дерево DOM XML на основе имеющегося у нас XML файла. // Заметьте, что это заняло у нас всего лишь одну строчку кода! $xml = xmldoc($xml); // Теперь в переменной $xml у нас находится дерево объектов, // представляющее собой наш XML файл. Для того, чтобы начать // обход этого дерева - необходимо получить объект родительской node (тега). // Для нашего XML файла это будет node <content> $root = $xml->root(); // Получаем массив потомков родительской node (в нашем случае это // массив <person>) $nodes = $root->children(); // Начинаем обработку каждой node в массиве foreach($nodes as $node) { // Если текущая node - это одна из node <person>, то продолжаем ее обработку, // чтобы получить информацию об этой новости if ($node->name=='person') { // Создаем новый массив, куда будем собирать иинформацию о текущем персе $currentStats = array(); // Получаем статус для перса (он хранится в аттрибуте 'status') $currentStats['status'] = $node->get_attribute('status'); // Сохраняем текущий сатус в массиве атрибутов $attrib[] = $currentStats; }; }; ?> <html> <head> <title>Статус</title> </head> <body> <table width="100%" border="1"> <?php foreach($news as $n) { ?> <tr> <td width="90%"><b><?php echo $n['status']; ?></b></td> </tr> <?php }; ?> </table> </body> </html> тош пока невышло
по быстрому разбор XML осуществляю двумя функциями. PHP: <? ### 440hz zone ### ### TOOLS ### function GetXMLFirstVal($r,$t) { if(preg_match_all('/<('.$t.')>(.*)<\/\\1>/Usi',$r,$o)) return $o[2][0]; return false; } function GetXMLAllVal($r,$t) { if(preg_match_all('/<('.$t.')>(.*)<\/\\1>/Usi',$r,$o)) return $o[2]; return array(); } ### TOOLS ### // RSS потоки // ТОЛЬКО ссылки БЕЗ параметров! // get.rss?a=b непокатит. тогда нужно юзать CURL $RSSS = array(); $RSSS[] = 'http://news.yandex.ru/computers.rss'; $RSSS[] = 'http://news.yandex.ru/security.rss'; $RSSS[] = 'http://news.yandex.ru/internet.rss'; // перебираем потоки foreach($RSSS AS $RSS) { print("\n$RSS"); // получаем контент $XML = file_get_contents($RSS); if($XML) { // получаеми список всех ITEM $ITEMS = GetXMLAllVal($XML,'item'); // перебираем ITEM foreach($ITEMS AS $ITEM) { // получаем данные $TITLE = GetXMLFirstVal($ITEM,'title'); $LINK = GetXMLFirstVal($ITEM,'link'); $DESC = GetXMLFirstVal($ITEM,'description'); $DATE = GetXMLFirstVal($ITEM,'pubDate'); $CAT = GetXMLFirstVal($ITEM,'category'); // ver 2.0 if(!$DATE) { $DATE = GetXMLFirstVal($ITEM,'dc:date'); } // конвертим дату в unixtime if($DATE) $DATE = strtotime($DATE); else $DATE = time(); // преобразуем спецсимволы $TITLE = html_entity_decode($TITLE,ENT_QUOTES); $DESC = html_entity_decode($DESC,ENT_QUOTES); $CAT = html_entity_decode($CAT,ENT_QUOTES); print("\n [".date('d.m.Y H:i',$DATE)."] - [$TITLE]"); } } } // что б в шелле строку переводило ... print("\n"); ?> Код (Text): gw(440hz):~$>php xml.php http://news.yandex.ru/computers.rss [21.03.2007 18:15] - [Частная ракета Falcon долетела до космоса] [21.03.2007 09:00] - [Скончался создатель языка программирования Fortran] [21.03.2007 16:33] - [В МТС новый технический директор] [21.03.2007 10:00] - [Компьютер в клавиатуре Cybernet ZPC-945SL] [20.03.2007 12:45] - ["Лаборатория Касперского" критикует закрытость Windows Vista] [21.03.2007 08:45] - [Samsung Q1Ultra - следующее поколение ультракомпактных персональных компьютеров] [21.03.2007 22:17] - [Пресс-релиз: Exigen Services StarSoft принял участие в CeBIT" 2007 в Ганновере] [21.03.2007 08:30] - [Израильские хакеры - самые активные в мире] [21.03.2007 16:50] - [Минсвязи прекратит выдачу лицензий на аналоговое телевещание] [21.03.2007 02:45] - ["Комкор" на проводе] [20.03.2007 18:15] - [Ожидается, что Palm поглотят на этой неделе] [20.03.2007 13:45] - [СПбГУ и Microsoft подпишут соглашение о сотрудничестве] [21.03.2007 10:45] - [Система менеджмента качества ММК прошла проверку] [21.03.2007 22:16] - [Связьинвест: операторам нужно дать право вводить дополнительные тарифы] [19.03.2007 19:00] - [Презентация новейших систем унифицированных коммуникаций (Unified Communications) Cisco] http://news.yandex.ru/security.rss [21.03.2007 11:45] - [PandLabs: новый троян специально для компаний] [19.03.2007 15:01] - [Недельный отчет Panda Software о вирусах и вторжениях] [22.03.2007 04:30] - [ZoneAlarm 7.0.337.000 - очередное массовое обновление серии продуктов для защиты ПК] [19.03.2007 19:16] - [Microsoft поторопилась с Live OneCare] [19.03.2007 09:30] - [В России будет создана служба для регулирования СМИ и Интернета] [20.03.2007 14:15] - [Компания "Доктор Веб" начала бета-тестирование двух новых продуктов] [19.03.2007 14:03] - [Несколько уязвимостей в CA BrightStor ARCserve Backup] [19.03.2007 17:16] - [Провайдеры продают каждый шаг своих пользователей] [20.03.2007 00:00] - [Обход ограничений безопасности в web-app.org WebAPP] [21.03.2007 11:45] - [PHP-инклюдинг в Monster Top List] [19.03.2007 13:46] - [Раскрытие данных в Sun Java System Web Server] http://news.yandex.ru/internet.rss [19.03.2007 14:01] - [Барак Обама и Хиллари Клинтон стали образцовыми блоггерами] [20.03.2007 16:45] - [Пользователи YouTube выберут лучшие видеоролики] [20.03.2007 16:30] - [Фальшивую невесту посадили за мошенничество в интернете] [19.03.2007 11:16] - [Новые требования к Интернет-торговле в Беларуси вступают в силу 19 марта] [19.03.2007 17:00] - [Microsoft раскрыла тайну дорвеев] [19.03.2007 16:16] - [Новая услуга BT упростит переход на IP телефонию] [21.03.2007 16:16] - ["ХИТ-ТВ" дает возможность бесплатно смотреть 77 каналов спутникового телевидения] [19.03.2007 13:03] - [На MySpace появились зараженные страницы] [21.03.2007 16:16] - [Интернет Удмуртии - инструмент продаж в умелых руках] [21.03.2007 17:15] - [В Минэкономпроме РТ обсудили вопросы добровольной сертификации АЗС] [22.03.2007 09:17] - [Молдавские леи в отечественных интернет-магазинах] [20.03.2007 11:45] - [Закрыт крупный пиратский завод в Санкт-Петербурге] [20.03.2007 09:45] - ["АМТ" внедряет NGN] [20.03.2007 12:45] - [Новостной сервис Google появится на wap-портале "Билайн"] [20.03.2007 09:45] - [WideXs вошел в состав Linxtelecom]
решил траблу. ответ смотри тут http://www.sleesh.net/2006/12/19/print: ... a_php.html у мну без проблем генерирует состав клана, и проверяет статус офлайн/онлайн. Котяра, не забудь кешировать. а то через некоторое время тя сервер пошлЁт.[/quote]