2010-03-08 3 views
0

У меня есть XML-файл, полный закладок из закладок Google. (Файл: http://gist.github.com/324844) Я хочу вытащить закладку на основе этого пути: xml_api_reply-> bookmarks-bookmark-> labels-> label.Запрос XML-файла с PHP для возврата определенных закладок

Итак, мой вопрос: как я могу использовать SimpleXML для захвата закладок с надписью Inspiration? В некоторых закладок может быть более одной закладки.

EDIT: Файл, указанный выше, является просто образцом.

ответ

1

Для этого вам необходимо использовать XPath.

Узлы вы хотите:

/xml_api_reply/bookmarks/bookmark 

фильтр вы хотите применить:

[labels/label = "Inspiration"] 

дает вам следующий XPath запрос:

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

использовано в скрипте:

$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(); 
} 

В качестве альтернативы вы также можете использовать короткие //bookmark[labels/label = "Inspiration"] - см. Это XPath tutorial