使用DOMDocument加载RSS文件 [英] Loading RSS file with DOMDocument
问题描述
$ url = $ student-> getElementsByTagName(url);
$ url = $ url-> item(0) - > nodeValue;
$ rss = new DOMDocument();
$ rss-> load($ url);
当我使用上面的代码时,RSS文件将不会加载。我甚至回应$ url,以确保它有一个分配给它的链接。但是,如果我把实际的url放到load()中,它工作得很好。为什么$ url在load()中工作?
可以使用 simplexml_load_file
在这种情况下,但请记住,所有这些操作是昂贵的(时间限制,内存等)。
$ rssStack = array();
$ xml = simplexml_load_file(http://people.rit.edu/cns3946/539/project2/rss_class.xml);
foreach($ xml-> student as $ student){
//需要清理$ url
$ url = trim((string)$ student-> url);
//抑制错误,一些urls返回404 Not Found
$ rss = @ simplexml_load_file($ url);
$ rssStack [] = $ rss;
//也可以使用
// $ rss = new DOMDocument();
// $ rss-> load($ url);
// $ rssStack [] = $ rss;
}
print_r($ rssStack);
更新
$ rssStack = array();
$ xml = new DOMDocument();
$ xml-> load(http://people.rit.edu/cns3946/539/project2/rss_class.xml);
foreach($ xml-> getElementsByTagName(url)as $ url){
//你需要清理url
$ url = trim($ url-> nodeValue);
$ rss = new DOMDocument();
$ rss-> load($ url);
$ rssStack [] = $ rss;
// break;
}
print_r($ rssStack);
I'm having an issue with my PHP assignment for school. I have to create a PHP script that reads an XML file with bunch of URLs to different RSS feeds. I'm using DOMDocument to retrieve an URL from this XML file and load a new DOM with the RSS feed. I assign the "url" node value to $url and then create a new DOM object for the RSS feed using $url.
$url = $student->getElementsByTagName("url");
$url = $url->item(0)->nodeValue;
$rss = new DOMDocument();
$rss->load($url);
The RSS file will not load when I use the code above. I even echoed $url to make sure that it has a link assigned to it. However, if I put the actual url into the load(), it works just fine. Why isn't $url working in load()?
You can use simplexml_load_file
in this case, but remember, all these operations are costly (time limit, memory etc..).
$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 =@ 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);
这篇关于使用DOMDocument加载RSS文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!