[PHP-users 15749]Re: PHP4.3.2でXSLT関数を使用
Seiji Masugata
s.masugata @ digicom.dnp.co.jp
2003年 6月 9日 (月) 08:41:44 JST
こんにちわ、桝形です。
> Windows2000+PHP4.3.2+Apache2.0.46でXSLT関数を
> 試してみようとしています。
こちらの環境:Windows2000+Apache1.3.27+PHP4.3.1
> [現象]
> test.phpを実行したところ、以下のエラーが発生
> Warning: Sablotron error on line 1: XML parser error 4:
> not well-formed (invalid token) in C:\Program
> Files\Apache
> Group\Apache2\htdocs\sample\test.php on line 6
下記のサンプルで同様のエラーがでる事を確認。
回避した手段として、渡すファイルのパス名を若干変更。
> [確認したこと]
> ・test.xml、test.xslの文字エンコードは問題なし
> (IEでもきちんと表示されることを確認したので、
> 文法的にも問題はないはず)
> ・$xml_file、$xsl_fileのパスを絶対パスにしたり、
> http://〜で指定するなどして確認
>
> サンプルは単純なものでもあり、間違いが混在しているとも
> 思えないのですが、なにか原因となりそうなものは考えられ
> ますでしょうか?皆さんのお知恵を拝借いたしたく、どうぞ
> 宜しくお願いいたします。
>
> -------------<test.php>------------------
> <?php
> $xml_file = dirname(__FILE__).'\test.xml';
> $xsl_file = dirname(__FILE__).'\test.xsl';
$xml_file = str_replace( "\\", "/", $xml_file );
$xsl_file = str_replace( "\\", "/", $xsl_file );
$xml_file = substr( $xml_file, 2 );
$xsl_file = substr( $xsl_file, 2 );
> $xh = xslt_create();
> $result = xslt_process($xh, "$xml_file","$xsl_file");
> if (!$result) {
> die(sprintf("Cannot process XSLT document [%d]: %s",
> xslt_errno($xh), xslt_error($xh)));
> }
> print($result);
> xslt_free($xh);
> ?>
で、どうでしょうか?
--
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>
PHP-users メーリングリストの案内