0

私自身の娯楽として、PHP のSimpleXMLElementクラスを利用する XML リーダー クラスを作成しています。最終的にはこれをライブラリとして CodeIgniter に移植し、将来のアプリケーションで利用できるようにします。ただし、今のところ、バニラ 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

次のようなメソッドを持つcount()

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

そしてそれを次のように使用します:

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

201あなたの例ではATOMファイルで印刷されます。

あなたは本当にそれを試しましたfooか?もしそうなら、それはゼロの結果を説明しています。

于 2013-05-27T18:52:49.627 に答える