2011-12-05 12 views
5

Sto cercando di leggere il rss yahoo (http://news.yahoo.com/rss/us) in PHP tramite la funzione xmlnon può leggere yahoo feed XML in php

questo è myvery semplice codice:

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

ma io mostra NULL:

[email protected]: php test.php 
NULL 

è il mio XML rotto? o c'è una funzione migliore in php per leggere il file xml?

posso vedere l'elmento esiste nel file XML e ho scaricato il file correttamente nel mio computer.

+0

[simplexml_load_file] (http://php.net/manual/en/function.simplexml-load-file.php) restituisce un oggetto non un array: 'Restituisce un oggetto di classe SimpleXMLElement con proprietà contenenti i dati contenuti nel documento XML, o FALSE in caso di fallimento. –

risposta

6

SimpleXML restituisce un oggetto, non un array. Prova questo:

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

oh funziona, significa che non posso usare l'array? come [] e non -> – Adam

+0

Se si preferisce utilizzare gli array, è possibile digitare con '$ xml = (array) $ xml;' dopo la chiamata simplexml. – Tak

+0

mi piace - grazie userò questo molto più facile dell'altra cosa – Adam

0

Qualcosa di simile a questo:

 
$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

ottengo questo: errore PHP Parse: errore di sintassi, imprevisto '"', in attesa di ',' o ';' in /var/www/rss.php sulla riga 7 – Adam

+0

ok rimosso tutte le virgolette, puoi farlo una volta, questo funziona per me –

+0

ok fammi provare – Adam