【发布时间】:2010-08-21 12:39:17
【问题描述】:
我正在尝试使用 simplexml 来读取 feedburner xml。我可以读取 xml 中的每个属性,但不能读取带有 ':' 的键。示例“feedburner:origLink”。当我转储项目时,那些带有 : 的键不会出现。而且我不能像 $s->item->feedburner:origLink.
【问题讨论】:
标签: php simplexml xml-namespaces
我正在尝试使用 simplexml 来读取 feedburner xml。我可以读取 xml 中的每个属性,但不能读取带有 ':' 的键。示例“feedburner:origLink”。当我转储项目时,那些带有 : 的键不会出现。而且我不能像 $s->item->feedburner:origLink.
【问题讨论】:
标签: php simplexml xml-namespaces
您正在处理命名空间,this Sitepoint article 看起来像是一个很好的长解释。或者更简洁的版本,请查看here in the PHP SimpleXML docs。
来自文档:
<?php
$xml = '<example xmlns:foo="my.foo.urn">
<foo:a>Apple</foo:a>
<foo:b>Banana</foo:b>
<c>Cherry</c>
</example>';
$sxe = new SimpleXMLElement($xml);
$kids = $sxe->children('foo');
var_dump(count($kids));
$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));
$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));
$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));
$kids = $sxe->children();
var_dump(count($kids));
?>
输出:
int(0)
int(2)
int(2)
int(0)
int(1)
【讨论】:
如果你懒惰并且不介意使用谷歌网络服务,这里有一个简单的方法可以将 feedburner(或其他)feed 的全部内容导入 php:
然后您可以将其 json_decode 它全部保存在您的对象/数组中。
【讨论】: