我的学校PHP分配问题。我必须创建一个PHP脚本,该脚本读取带有一堆URL到不同RSS源的XML文件。我正在使用DOMDocument从此XML文件中检索URL并使用RSS源加载新DOM。我将“url”节点值分配给$ url,然后使用$ url为RSS提要创建一个新的DOM对象。
$url = $student->getElementsByTagName("url");
$url = $url->item(0)->nodeValue;
$rss = new DOMDocument();
$rss->load($url);
使用上面的代码时,不会加载RSS文件。我甚至回应$ url以确保它有一个分配给它的链接。但是,如果我将实际的url放入load(),它就可以正常工作。为什么$ url不在load()中工作?
答案 0 :(得分: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 =@ simplexml_load_file($url);
$rssStack[] = $rss;
// also can use
// $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) {
// you need to sanitize url
$url = trim($url->nodeValue);
$rss = new DOMDocument();
$rss->load($url);
$rssStack[] = $rss;
// break;
}
print_r($rssStack);