2011-01-18 28 views
2

私は<packages>を循環して<downloads>を合計すると、hereというPHPフィードを読み込もうとしています。 DOMDocumentを使用してこれを実行しようとしましたが、これまでに失敗しました。初心者がxmlをPHPに読み込もうとしています

<?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 /ホーム/ a8744502/public_htmlの/ userbar中:期待されるタグを起動し、 '<' 行、エンティティには見られませんライン3

作業コード上の.php:

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

答えて

8

DOMDocument::loadXML()は、XMLの文字列が必要です。代わりにDOMDocument::load()を試してください。http://www.php.net/manual/en/domdocument.load.php

HTTP経由でXMLファイルを開くには、appropriate wrapperが有効になっている必要があります。

+0

ええと、今はエラーが出ません。ただ空白の画面です:s http://zaeed.uphero.com/ userbar.php。適切なラッパーが何を意味しているのか分かりませんbtw – Matt

+0

私はうまく動作しています... にはuid属性があります。私の投稿を作業コード – Matt

+0

@MattOopsで更新します。私はDOMNodeListをトラバースできることについて間違っていました(PHPドキュメントは失敗します)。元のコードが存在しない ''の 'uid' *属性*をエコーし​​ようとしました。しかし、子ノードがあります。 – Phil

1

あなたのエコーの先頭に開き括弧を持っています。

+0

良いキャッチですが、最初のエラーの原因ではありません。 – Phil

+0

これは問題ではありません。このサイトにコードをコピーするときの間違いです。 – Matt

関連する問題