не могу прочитать yahoo xml feed в php

я пытаюсь прочитать Yahoo rss (http://news.yahoo.com/rss/us) в php, используя функцию xml

это мой очень простой код:

 $xml = simplexml_load_file('xml.xml');
 var_dump($xml['channel']);

но я показываю NULL:

adam@cka: php test.php
NULL

мой XML не работает? или есть лучшая функция в php для чтения xml-файла?

я вижу, что элемент существует в файле XML, и я правильно загрузил файл на свой компьютер.


person Adam    schedule 05.12.2011    source источник
comment
simplexml_load_file возвращает объект, а не массив: Returns an object of class SimpleXMLElement with properties containing the data held within the XML document, or FALSE on failure.   -  person Book Of Zeus    schedule 05.12.2011


Ответы (2)


SimpleXML возвращает объект, а не массив. Попробуй это:

<?php
 $xml = simplexml_load_file('http://news.yahoo.com/rss/us');
 var_dump($xml->channel);
?>
person Tak    schedule 05.12.2011
comment
о, это работает, значит ли это, что я не могу использовать массив? как [] и не -› - person Adam; 05.12.2011
comment
Если вы предпочитаете использовать массивы, вы можете привести тип с помощью $xml = (array)$xml; после вызова simplexml. - person Tak; 05.12.2011
comment
мне это нравится - спасибо, я буду использовать это намного проще, чем что-то другое - person Adam; 05.12.2011
comment
Здорово! Если это ответило на ваш вопрос, пожалуйста, отметьте его как ответ :) - person Tak; 05.12.2011

Что-то вроде этого:

$rss = simplexml_load_file('http://news.yahoo.com/rss/us');

echo $rss->channel->title;

foreach ($rss->channel->item as $item) {
   echo $item->link. " -- " .$item->title;
   echo $item->pubDate;
   echo $item->description;
} 
person Sudhir Bastakoti    schedule 05.12.2011
comment
я получаю это: Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданное '', ожидание ',' или ';' в /var/www/rss.php в строке 7 - person Adam; 05.12.2011
comment
хорошо, удалил все кавычки, можете проверить это один раз, у меня это работает - person Sudhir Bastakoti; 05.12.2011