Belirli imleri dönmek için PHP ile sorgu XML dosyası

1 Cevap php

Google Bookmarks yer imleri dolu bir XML dosyası var. (Dosya: http://gist.github.com/324844) Ben bu yolda dayalı imini çekmek istiyorum: xml_api_reply-> imleri-imi-> etiketler-> etiket.

Yani, benim soru nasıl etiketi İlham sahip imlerini kapmak için SimpleXML kullanabilir mi? Bazı imleri bir yer imi daha fazla olabilir.

EDIT: Yukarıda listelenen dosya sadece bir örnek.

1 Cevap

Bunun için XPath kullanmak gerekecek.

İstediğiniz düğümleri:

/xml_api_reply/bookmarks/bookmark

Uygulamak istediğiniz filtre:

[labels/label = "Inspiration"]

Size şu XPath sorgusu verir:

/xml_api_reply/bookmarks/bookmark[labels/label = "Inspiration"]

Bir komut kullanılır:

$xml_api_reply = simplexml_load_file('http://gist.github.com/raw/324844/e4b1e05118b09c61c2a5b8b9a3bab92b895de07c/GoogleBookmarksXMLOutput');

foreach ($xml_api_reply->xpath('/xml_api_reply/bookmarks/bookmark[labels/label = "Inspiration"]') as $bookmark)
{
    // ...
    echo $bookmark->asXML();
}

Alternatif olarak, aynı zamanda kullanabilirsiniz kısa //bookmark[labels/label = "Inspiration"] - gördüğünüz XPath tutorial