Php 从具有命名空间的xml标记获取的属性

Php 从具有命名空间的xml标记获取的属性,php,xml,xml-parsing,simplexml,Php,Xml,Xml Parsing,Simplexml,可能重复: 我有一部分xml是: <item> <source url="eurosport.com">Eurosport</source> <media:content url="http://media.zenfs.com/en_GB/Sports/Eurosport/900589-15042881-640-360.jpg" type="image/jpeg" width="130" height="86" /> </i

可能重复:

我有一部分xml是:

<item>
    <source url="eurosport.com">Eurosport</source>
    <media:content url="http://media.zenfs.com/en_GB/Sports/Eurosport/900589-15042881-640-360.jpg" type="image/jpeg" width="130" height="86" />
</item>
使用SimpleXMLElement()的xPath()方法


您需要使用
->children()
方法来选择正确的命名空间:

foreach ($item->children('media', true)->content->attributes() as $key => $val) {
        return (string)$val; 
}

您是否尝试过简单的
$item->{'content'}
?许多简单的解析器只需要节点名。。。如果愿意,您可以使用前缀或NS,但这不是经常需要的。@jheddings:试过了。循环未被输入only@jheddings是正确的,看@Phil:这对我不起作用。尝试了以下操作:返回(字符串)$item->content['url']@jheddings:这仅仅是因为零碎的XML不包含名称空间声明。如果您使用
它将停止工作。为什么每个人都认为您需要XPath在SimpleXML中使用名称空间?你绝对不会。
var_export($item->xpath('media:content'));
foreach ($item->children('media', true)->content->attributes() as $key => $val) {
        return (string)$val; 
}