UniServer / UniPrint / UniHttpd


PHPで「PEAR XML」を使う。(PHP4.2.4-devの話です。PHP5では標準で再実装されました。)

  • info.phpを作って、「Configuration File (php.ini) Path」を調べる。(info.phpをブラウザからアクセスします。)
    $ vi info.php
    <?php
      phpinfo();
    ?>
  • phpinfo()で調べて、例えば、/usr/local/lib/だったら、以下の「PEAR XML」関係のファイルがあるか確かめる。
    /usr/local/lib/php/XML/
    /usr/local/lib/php/XML/Tree.php
    /usr/local/lib/php/XML/Parser.php
    /usr/local/lib/php/XML/Tree/Node.php
    • なければ、以下のURLからダウンロードして、入れる。
    • http://pear.php.net/package/XML_Parser/
    • インストールは/usr/local/lib/php/XML/配下にコピーするだけです。
  • XML_Treeはバージョン1.1を以下のURLからダウンロードして入れる。
  • 以下のURLで「XML_MB_Tree(日本語化)」モジュールを以下のURLからダウンロードして入れる。
  • あとは以下のようなコードでテストします。(EUCコードでテストしました。)
    <?php
    
    //     require_once('XML/Tree.php');
           require_once('XML_MB_Tree.inc');
    
           echo "############test<br>";
    
    $xml_str = '<?xml version="1.0" ?><tag1>テキスト1<tag2>テキスト2</tag2><tag3>テキスト3</tag3><tag4><tag5>テキストNo.1</tag5><tag6>テキストNo.2</tag6></tag4></tag1>';
    
    //     $tree =& new XML_Tree();
           $tree =& new XML_MB_Tree('test.xml', '1.0', 'EUC-JP');
           $root =& $tree->getTreeFromString($xml_str);
    
           if(XML_Tree::isError($root)) {
               //エラー処理
               echo "error!!!<BR>";
           }
    
           foreach($root->children as $child) {
               echo "node : ". $child->name . "<br>";
               echo "data : ". $child->content. "<br>";
                   echo "-----------------------------------<br>";
                   foreach($child->children as $child2) {
                       echo "node : ". $child->name ." node : ". $child2->name . "<br>";
                       echo "node : ". $child->name ." data : ". $child2->content. "<br>";
                   }
           }
    ?>
  • 実行結果
    ############test
    node :
    data : テキスト1
    -----------------------------------
    node : tag2
    data : テキスト2
    -----------------------------------
    node : tag3
    data : テキスト3
    -----------------------------------
    node : tag4
    data :
    -----------------------------------
    node : tag4 node : tag5
    node : tag4 data : テキストNo.1
    node : tag4 node : tag6
    node : tag4 data : テキストNo.2
  • 漢字コードがすべてOKかは未確認です。XMLタグは日本語はやめたほうがよさそうです。
  • 参考URL

開発Tipsへ戻る。

 

Copyright © UTL Co.,Ltd. All Rights Reserved. [UTL]