[PHP-users 15676]Re: Apache(Win)+PHP+SablotronでXML→HTML変換する方法についてアドバイスをお願いします

A.K.I. aki @ tetsuneko.com
2003年 6月 4日 (水) 13:51:46 JST


A.K.I.と申します。

> ■状況
>  Warning: Sablotron error on line 1: XML parser error 4: not
> well-formed (invalid token)
>  と表示されて、変換に失敗する。XML, XSLはいずれもShift JIS
>で書かれたDOS形式ファイル。

well-formedになっていない、ということなので、エラー箇所から
すると
1.XML宣言がない
2.XML宣言に文字コードの指定がない
のどちらかではないかと思います。

文字コードの指定は受け入れない(UTF-8/UTF-16にしか対応してい
ない)パーサも世の中には多くあるので、できればShiftJISやEUC-JP
は使わない方がよいかと思います。

だいたいwell-formedの定義は
「XML宣言があること」
「すべての開始タグと終了タグが対になっている」
「ルートとなるタグが他のタグの入れ子になっていない」
「入れ子になっているタグの終了タグが親タグの終了タグより後に来
ない」
「attributeは""で括る」
こんな感じです。実装によってはチェックされない項目もあります
が、well-formedはXMLの「最低条件」みたいなものなので満たすよ
うに書くべきでしょう。

#あっちでは通るがこっちでは通らないなんて話はまず上記条件を満
たした上で出すべきものではないかと。




PHP-users メーリングリストの案内