Pear XMLを使ってXML文書を処理するまでの準備。
まずは、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
エラーの対処はひとまず置いておいて、先にマルチバイト文字も処理できるようにします。 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() {
これでエラーも出なくなり、マルチバイト文字もちゃんと処理できるようになります。