2011-12-05 9 views
5

próbuję odczytać RSS yahoo (http://news.yahoo.com/rss/us) w PHP przy użyciu funkcji xmlnie może odczytać yahoo kanału XML w php

to myvery prosty kod:

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

ale pokazuje NULL:

[email protected]: php test.php 
NULL 

jest mój XML uszkodzony? lub jest lepsza funkcja w php do odczytu pliku xml?

Widzę, że istnieje plik XML i plik został pobrany w prawidłowy sposób na moim komputerze.

+0

[simplexml_load_file] (http://php.net/manual/en/function.simplexml-load-file.php) zwracają obiekt nie tablica: 'Zwraca obiekt klasy SimpleXMLElement z właściwościami zawierającymi dane przechowywane w dokumencie XML, lub FALSE w przypadku niepowodzenia." –

Odpowiedz

6

SimpleXML zwraca obiekt, a nie tablicę. Spróbować:

<?php 
$xml = simplexml_load_file('http://news.yahoo.com/rss/us'); 
var_dump($xml->channel); 
?> 
+0

oh działa, czy to znaczy, że nie mogę używać tablicy? jak [], a nie -> – Adam

+0

Jeśli wolisz używać tablic, możesz użyć typecast z '$ xml = (tablica) $ xml;' po wywołaniu simplexml. – Tak

+0

Podoba mi się - dzięki temu wykorzystam to znacznie łatwiej niż inne rzeczy. – Adam

0

tak:

 
$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; 
} 
+0

Mam to: PHP Błąd parsowania: błąd składni, nieoczekiwany "" ", oczekiwanie", "lub"; " w /var/www/rss.php on line 7 – Adam

+0

ok usunąłem wszystkie cytaty, możesz raz to sprawdzić, to działa dla mnie –

+0

ok, pozwól mi spróbować – Adam