новичок пытается прочитать XML в PHP - PullRequest
2 голосов
/ 18 января 2011

У меня есть xml-лента здесь , которую я пытаюсь прочитать в 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]: ожидается начальный тег, «<» не найден в объекте, строка: 1 в /home/a8744502/public_html/userbar.php в строке 3 </strong>

РАБОЧИЙ КОД:

<?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 ]

8 голосов
/ 18 января 2011

DOMDocument::loadXML() ожидает строку XML. Попробуйте DOMDocument::load() вместо - http://www.php.net/manual/en/domdocument.load.php

Имейте в виду, что для открытия XML-файла через HTTP вам потребуется соответствующая оболочка .

1 голос
/ 18 января 2011

У вас есть открытая скобка в начале вашего эха.

...