0

为了我自己的乐趣,我正在创建一个利用 PHP 类的 XML 阅读器SimpleXMLElement类。最终我将把它作为一个库移植到 CodeIgniter,这样我就可以在未来的应用程序中使用它。但是,现在我正在使用 vanilla PHP 对其进行测试。我的最终目标是能够遍历 XML 文档。现在,我正在查看这个提要: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

4

1 回答 1

1

Having the count() method like:

public function count($element) {
    return $this->xml->$element->count();
}

And using it like:

echo $xml->count('entry');

Will print 201 with the ATOM file in your example.

Did you really just try it with foo? If so, that explains the zero results.

于 2013-05-27T18:52:49.627 回答