Pear XMLを使ってXML文書を処理するまでの準備。
XML_ParserとXML_Tree
まずは、XML_ParserとXML_Treeがインストールされているかチェックします。
# pear list ... XML_Parser 1.2.7 stable XML_RPC 1.4.0 stable XML_Tree 1.1 stable ...
無いようならば、インストールします。
pear install XML_Parser
pear install XML_Tree
ちなみに、ここまでの状態でXML_Treeを使おうとすると、PHP 5.0では下記のようなエラーが出てしまいます。 また、マルチバイト文字への考慮がなされていないらしく、文字化けします。
PHP Parse error: parse error, unexpected T_CLONE, expecting T_STRING in /usr/share/pear/XML/Tree.php on line 297
XML_Tree_Ex
エラーの対処はひとまず置いておいて、先にマルチバイト文字も処理できるようにします。 Hawk's W3 Laboratory : PHP : PEAR :: XML_Treeを使うにて配布されている、XML_Tree_Ex.zipをダウンロードしてきます。
wget http://www.hawk.34sp.com/phps/XML_Tree_Ex.zip
unzip XML_Tree_Ex.zip
chmod 644 *.php
mv *.php /usr/share/pear/XML
続いて、エラーの対処をします。 どうやら、PHP 4.0からPHP 5.0にかわってクラスまわりの記述方法が変わったらしく、それが原因でエラーになってしまっているようなので、その部分をPHP 5.0風になおします。 具体的には、以下の三つのファイルについて、インスタンスのクローンを作るメソッドcloneを__cloneに改名します。
// pear/XML/Tree.php on line 297
//function clone() { ←この行を書き換える
function __clone() {
// pear/XML/Tree/Node.php on line 112
//function &clone() { ←この行を書き換える
function __clone() {
// pear/XML_Tree_Node_Ex.php on line 86
//function &clone() { ←この行を書き換える
function __clone() {
これでエラーも出なくなり、マルチバイト文字もちゃんと処理できるようになります。