PHP - 无法使用简单 XML 访问某些元素


PHP - Unable to access certain elements with Simple XML

SimpleXML 是否只允许访问具有特定名称的元素?我一直在尝试从一些 rss 提要中获取发布日期,当日期包含在 pubDate 标签内时,这是可能的,但是我在使用将其日期保存在名为"dc:date"的标签内的提要时遇到了问题

<dc:date>2013-12-12T22:30:46+00:00</dc:date>

当我print_r时,项目看起来像这样

$rss = simplexml_load_file($source_url);
[0] => SimpleXMLElement Object
                    (
                        [title] => NEWS: Mayday Parade post 2014 Vans Warped Tour announcement video
                        [link] => http://www.altpress.com/news/entry/mayday_parade_post_2014_vans_warped_tour_announcement_video
                        [guid] => http://www.altpress.com/news/entry/mayday_parade_post_2014_vans_warped_tour_announcement_video
                    )

没有直流日期的迹象。这是 SimpleXML 行为吗?我怎么可能访问日期,我正在访问的提要是这个:http://www.altpress.com/rss

正如 SimpleXMLElement::children 文档所述,如果要查询任何非默认(例如 NULL(命名空间子项,则必须显式提供命名空间。

例如,请考虑:

$xml = '<?xml version="1.0" encoding="UTF-8" ?> 
<rss xmlns:dc="my.dc.urn"> 
    <channel> 
        <item> 
            <title>Tom And Jerry</title> 
            <category>Comicbook</category>
            <dc:date>2013-12-12T22:30:46+00:00</dc:date>
        </item> 
    </channel> 
</rss>
';
$rss = simplexml_load_string($xml);
$item = $rss->channel[0]->item[0];
print_r($item->children());
//prints out "title" and "category"
print_r($item->children("dc", true));
//prints out "date" within the "dc" namespace (e.g. "dc:date")