我有一个位于here的xml Feed,我试图将其读入php脚本,然后循环浏览<packages>
,并对<downloads>
求和。我试图使用DOMDocument做到这一点,但迄今为止失败了。
我一直试图使用的基本方法如下
<?php
$dom = new DomDocument;
$dom->loadXML('http://www.phogue.net/feed');
$packages = $dom->getElementsByTagName('package');
foreach($packages as $item)
{
echo $item->getAttribute('uid').'<br>';
}
?>
上面的代码只是打印出每个项目的名称,但它不起作用。我目前收到以下错误
警告:DOMDocument :: loadXML()[domdocument.loadxml]:期望开始标记,'&lt;'在实体中找不到,第3行/home/a8744502/public_html/userbar.php中的第1行
工作代码:
<?php
$dom = new DomDocument;
$dom->load('http://www.phogue.net/feed/');
$package = $dom->getElementsByTagName('package');
$value=0;
foreach ($package as $plugin) {
$downloads = $plugin->getElementsByTagName("downloads");
$download = $downloads->item(0)->nodeValue;
$authors = $plugin->getElementsByTagName("author");
$author = $authors->item(0)->nodeValue;
if($author == "Zaeed")
{
$value += $download;
}
}
echo $value;
?>
答案 0 :(得分:8)
DOMDocument::loadXML()
需要一串XML。请尝试使用DOMDocument::load()
- http://www.php.net/manual/en/domdocument.load.php
请注意,要通过HTTP打开XML文件,您需要启用appropriate wrapper。
答案 1 :(得分:1)
在回声的开头有一个左括号。