2013-02-02 36 views
0

我遇到了我的PHP分配給學校的問題。我必須創建一個PHP腳本,該腳本可以將XML文件與一堆URL一起讀取到不同的RSS源。我正在使用DOMDocument從這個XML文件中檢索一個URL,並使用RSS源加載一個新的DOM。我將「url」節點值分配給$ url,然後使用$ url爲RSS提要創建一個新的DOM對象。使用DOMDocument加載RSS文件

$url = $student->getElementsByTagName("url"); 
$url = $url->item(0)->nodeValue; 


$rss = new DOMDocument(); 
$rss->load($url); 

當我使用上面的代碼時,RSS文件將不會加載。我甚至迴應了$ url,以確保它有一個鏈接分配給它。但是,如果我把實際的url放入load(),它就可以正常工作。爲什麼$ url不能在load()中工作?

+0

XML源($學生)? –

+0

http://people.rit.edu/cns3946/539/project2/rss_class.xml – user2034617

+0

問題已解決。 – user2034617

回答

0

在這種情況下,您可以使用simplexml_load_file,但請記住,所有這些操作都是昂貴的(時間限制,內存等)。

$rssStack = array(); 
$xml = simplexml_load_file("http://people.rit.edu/cns3946/539/project2/rss_class.xml"); 
foreach ($xml->student as $student) { 
    // need sanitize $url 
    $url = trim((string) $student->url); 
    // suppress errors, cos some urls return "404 Not Found" 
    $rss [email protected] simplexml_load_file($url); 
    $rssStack[] = $rss; 
    // also can use 
    // $rss = new DOMDocument(); 
    // $rss->load($url); 
    // $rssStack[] = $rss; 
} 
print_r($rssStack); 

UPDATE

$rssStack = array(); 
$xml = new DOMDocument(); 
$xml->load("http://people.rit.edu/cns3946/539/project2/rss_class.xml"); 
foreach ($xml->getElementsByTagName("url") as $url) { 
    // you need to sanitize url 
    $url = trim($url->nodeValue); 
    $rss = new DOMDocument(); 
    $rss->load($url); 
    $rssStack[] = $rss; 
    // break; 
} 
print_r($rssStack); 
+0

我會使用,但是我們的教授要求我們使用DOMDocument ..:/ – user2034617

+0

我得到了它的工作。我添加了修剪((字符串)我的代碼,它的工作完美。謝謝! – user2034617

+0

好吧,看到更新。 –