[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 メーリングリストの案内