PHP SimpleXML:获取子节点的子节点

时间:2017-03-24 17:06:33

标签: php xml

我正在努力制作能够从Picasa网络相册原子/ RSS Feed中检索照片和视频的内容。 Feed看起来像这样:

<!--XML heading above-->
<entry>
    <gphoto:id>98387294</gphoto:id>
    <gphoto:description></gphoto:description>
    <!--More XML tags below-->
    <media:group>
        <media:content url="url here" type="video/mpeg4"></media:scontent>
        <!--more media:content tags-->
    </media:group>
</entry>
<!--more entry nodes below-->

我想要做的是通过每个条目标签,然后通过每个媒体:组标签,根据其大小属性检索特定的media:content标签,并回显包含标签信息的html代码。这是我在下面的测试PHP代码:

    //code to retrieve XML not shown
    $xmlObj = simplexml_load_string($xmlFormatted);
        foreach($xmlObj->children() as $entry){
            $size = sizeof($entry->children());
            foreach($entry->childNode[$size-1]->children() as $node){
                echo $node . "\t";
            }
            echo "\n";
        }

代码可以通过$xmlObj的每个孩子来徘徊,但是我不能通过每个条目的孩子循环。我收到这个错误:

Fatal error: Uncaught Error: Call to a member function children() on boolean

错误与foreach($entry->childNode[$size-1]->children()一致。我将如何循环通过子节点的子节点?或者,我如何获取<media:content>的内容(由于冒号而不是普通的XML节点)?

这是我第一次尝试编写可以解释XML的代码,因此我的方法可能看起来不是最好的。

0 个答案:

没有答案