初学者试图将xml读入php

时间:2011-01-18 02:35:21

标签: php xml domdocument

我有一个位于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;
?>

2 个答案:

答案 0 :(得分:8)

DOMDocument::loadXML()需要一串XML。请尝试使用DOMDocument::load() - http://www.php.net/manual/en/domdocument.load.php

请注意,要通过HTTP打开XML文件,您需要启用appropriate wrapper

答案 1 :(得分:1)

在回声的开头有一个左括号。