Разбор SimpleXML получить мимо двоеточия PHP - PullRequest
0 голосов
/ 20 марта 2012

Привет! Я хочу получить доступ к значению в XML-ленте:

<entry>
<ilink:operation>store</ilink:operation>
<ilink:type>ondemand</ilink:type>
<id>736</id>
<updated>2012-03-13T11:27:32Z</updated>
<content type="application/xml">
   <media:content>
      <ilink:parent_id>8132</ilink:parent_id>
      <ilink:availability_start>2012-01-06T00:00:00Z</ilink:availability_start>
      <ilink:availability_end>2012-02-03T00:00:00Z</ilink:availability_end>
      <ilink:duration>PT0S</ilink:duration>
   </media:content>
</content>

Но двоеточия мешают.Как я могу получить доступ к этому?Вот мой код:

$pictureBoxXMLFeed = simplexml_load_file('https://www.picturebox.tv/xml/feeds/FindAnyFilm/FindAnyFilm.xml');

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

    $hey = ($value->children('content')->children('media', true)->content->children('ilink', true)->parent_id);
    echo $hey;
    echo '<br/>';
}

Но я просто получаю список ошибок.Пожалуйста, может кто-нибудь помочь мне добраться до него?

1 Ответ

3 голосов
/ 20 марта 2012

XML в том виде, в каком вы его разместили, является синтаксически неверным.Закрывающего тега </entry> нет, и в нем нет определений пространства имен.Это вызвало много предупреждений при попытке найти ответ.

Как только я исправил эти проблемы в XML, я использовал следующее, чтобы получить то, что вы, похоже, ищете:

foreach($pictureBoxXMLFeed->xpath('//content') as $content){
    $hey = ($content->children('media', true)->content->children('ilink', true)->parent_id);
    echo $hey;
    echo '<br/>';
}
...