simplexml和访问feedburner的:

时间:2010-08-21 12:39:18

标签: php simplexml xml-namespaces

我正在尝试使用simplexml来读取feedburner xml。我可以读取xml中的每个属性,但不能读取带有“:”的键。示例“feedburner:origLink”。当我对项目进行vardump时,那些带有:的键不显示。我不能像$ s-> item-> feedburner:origLink。

2 个答案:

答案 0 :(得分:3)

您正在处理命名空间,而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)

答案 1 :(得分:1)

如果你很懒,不介意使用谷歌网络服务,这里有一个简单的方法来获取一个feedburner(或其他)feed的全部内容到php:

http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=100&q=http://feeds.feedburner.com/variety/headlines

然后你可以只对它进行json_decode,它就在你的对象/数组中。