似乎我无法检索第二个媒体:内容,上面带有width="460"
的那个。
<item>
<title>...</title>
<link>...</link>
<description>...</description>
<category domain="...">title</category>
<category domain="...">Benjamin Netanyahu</category>
<category domain="...">Judaism</category>
<category domain="...">Religion</category>
<pubDate>Mon, 23 Jul 2018 07:00:27 GMT</pubDate>
<media:content width="140" url="**(i can retrieve this image)**">
<media:credit scheme="urn:ebu">Photograph: Author 1</media:credit>
</media:content>
<media:content width="460" url="**(but i cant retrieve this one)**">
<media:credit scheme="urn:ebu">Photograph: Author 2</media:credit>
</media:content>
<dc:creator>Touma-Sliman</dc:creator>
<dc:date>2018-07-23T07:00:27Z</dc:date>
</item>
这是我当前的代码:
foreach ($xml->channel->item as $key=>$item)
{
$results = (string)$item[0]->children('media', true)->content->attributes()['url'];
}
答案 0 :(得分:0)
...->content->...
是...->content[0]->...
的简写,所以您只需要该节点的第一个实例即可。
相反,您需要以与遍历->content
节点相同的方式遍历->item
节点:
foreach ( $item->children('media', true)->content as $content )
或者如果出于某种原因您知道自己明确想要第二个节点,则可以要求提供[1]
:
$second_url = (string)$item->children('media', true)->content[1]->attributes()['url'];
(我将$item[0]
替换为$item
,因为每次循环时该变量已经代表<item>
的单个实例。)