[PHP-users 4366] PHPでのXML利用について

Hiroyoshi Ueda php-users@php.gr.jp
Thu, 20 Dec 2001 15:59:49 +0900


こんにちは上田と申します。

現在PHPでのXML利用方法について悩んでいます。
やりたいことは、PHPでDBから取得したデータをXML形式で出力し、
それに適当なXSLなどを当ててブラウザに表示させたいのです。

具体的に試してみたのは、
DB(PostgreSQL)から必要なデータを取得し、
$data[連番]["カラム名"] = 値
のように連想配列に入れ、
<?php
    header ("Content-type: text/xml; charset=Shift_JIS");

    echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n";
    echo "<?xml-stylesheet type=\"text/xsl\" href=\"test.xsl\"?>\n";

    for ($i=0; $i<count($data); $i++) {
        echo "<test>\n";
        while (list($at, $val) = each($data[$i])) {
            echo "<$at>\n";
            echo $val;
            echo "</$at>\n";
        }
        echo "</test>\n";
    }
?>
のようにして出力させました。
結果としてはブラウザに意図したXMLの形でそのまま表示されましたが、
ブラウザはXMLとしては認識していないようです。

headerなどに何か足りないものがあるのでしょうか?
または、このようなやり方自体がおかしいのでしょうか?

これができたら、バックエンドのPHP技術者とフロントエンドのXSL技術者を
ほぼ完全に独立させることができると思ったのですが、
ご存知の方がおられましたらご教授ください。よろしくお願いします。

[環境]
Apache1.3.22+PHP4.0.6+PostgreSQL7.1.3
InternetExplorer6.0

Hiroyoshi Ueda
E-Mail: ueda@ni-consul.co.jp