Simplexml_load_file kullanarak bir atom beslemesi () ayrıştırma Sorun, bir özniteliği alınamıyor

1 Cevap php

Ben sosyal bir zaman çizelgesi oluşturmak için çalışıyorum. Ben yaptım şey bir zaman çizelgesi var bu yüzden bazı yerlerde meydana yemlerin çekin. Ben yaşıyorum sorun Google okuyucu Ortak Öğeler ile.

Çünkü ben <entry gr:crawl-timestamp-msec="1269088723811"> kullanarak elemanı almak için çalışıyorsunuz bulunan öğeyi paylaşılan hangi zaman $date = $xml->entry[$i]->link->attributes()->gr:crawl-timestamp-msec; başarısız almak istiyorum: Bir PHP hata neden sonra gr. Ben bu yüzden aşağıdaki kodu kullanarak adını değiştirmek düşündüm ama aşağıdaki hatayı atar, eleman almak için nasıl anlamaya

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "<?xml version="1.0"?><feed xmlns:idx="urn:atom-extension:indexing" xmlns:media="http://search.yahoo.com/mrss/" xmlns

<?php

$get_feed = file_get_contents('http://www.google.com/reader/public/atom/user/03120403612393553979/state/com.google/broadcast');

    $old = "gr:crawl-timestamp-msec";
    $new  = "timestamp";

    $xml_file = str_replace($old, $new, $get_feed);

    $xml = simplexml_load_file($xml_file);
    $i = 0;


        foreach ($xml->entry as $value)
        { 

            $id = $xml->entry[$i]->id;
            $date = date('Y-m-d H:i:s', strtotime($xml->entry[$i]->attributes()->timestamp ));
            $text = $xml->entry[$i]->title;
            $link = $xml->entry[$i]->link->attributes()->href;
            $source = "googleshared";

            echo "date = $date<br />";

            $sql="INSERT IGNORE INTO timeline (id,date,text,link, source) VALUES ('$id', '$date', '$text', '$link', '$source')";
            mysql_query($sql);

            $i++;
        }`

Birisi bana doğru yönde işaret olabilir lütfen.

Şerefe

Craig

1 Cevap

crawl-timestamp-msec farklı bir ad olduğu için sorundur. Somewhere belge (sizin durumda <feed/> olarak görünüyor genellikle kök elemanı), bu xmlns:gr="http://some/url/here" çizgisinde bir nitelik olacaktır. Bu belge, http://some/url/here ad şeyleri kullanarak olacak, ve gr ile tüm bu şeyler öneki söylüyor.

[Edit: Söz konusu URL http://www.google.com/schemas/reader/akarşım/]

Erişmek için, değiştirmek gerekir

$xml->entry[$i]->link->attributes()->gr:crawl-timestamp-msec

karşı

$xml->entry[$i]->attributes('http://www.google.com/schemas/reader/akarşım/')->{'crawl-timestamp-msec'}

(Edit: özellik <entry/> elemanı üzerinde, <link/>, göründüğü gibi değil)