为了我自己的娱乐,我正在创建一个使用PHP SimpleXMLElement
类的XML阅读器类。最终我将它作为库移植到CodeIgniter,以便我可以在将来的应用程序中使用它。但是,现在我正在使用vanilla PHP进行测试。我的最终目标是能够遍历XML文档。目前,我正在查看此Feed:http://rubygems.org/gems/sass/versions.atom。
我很难将信息传递到我自己的count()
方法中。这是方法:
public function count($element) {
$this->element = $element;
return $this->xml->element->count();
}
上述方法的想法是允许任何人传入一个对象,它将返回一个int
,用于标识特定元素具有的子节点数。通常,这可行:
$xml->title->count(); // returns 1, for example
echo $xml->count('entry'); // always results in 0
public function count($element) {
return $this->xml->$element->count();
}
echo $xml->count('entry'); // still results in 0
echo $xml->count($xml->entry); // Undefined property
这样做的正确方法是什么?任何指导将不胜感激!以下是完整的课程:http://pastebin.com/VjhjGcaR
答案 0 :(得分:1)
使用count()
方法:
public function count($element) {
return $this->xml->$element->count();
}
使用它像:
echo $xml->count('entry');
将在您的示例中使用ATOM文件打印201
。
你真的只是用foo
来试试吗?如果是这样,那就解释了零结果。