0

DOMDocument クラスを使用して PHP で XML ファイルを生成しました。データは MySQL データベースから取得されました。多くのデータには HTML マークアップが含まれていますが、すべて CDATA セクションにまとめました。

最初はファイルに多くのエンコード エラーがありましたが、ファイルに入れる前に utf8_encode() ですべてを実行すると、1 つを除いてすべてのエラーが修正されたようです。

ここに私が今持っているエラーがあります:

    error on line 5113 at column 450: Input is not proper UTF-8, indicate encoding !
    Bytes: 0x14 0x31 0x30 0x30

ここで同様のエラーのある投稿をいくつか見つけましたが、問題を解決したものはなく、utf_encode() の使用を提案したものもありません。エラーを引き起こしていると思われるセクションは次のとおりです。

    ...quiet portable package. ]]></Summary><Features><![CDATA[The EF4500iSE was designed for maximum fuel...

エラーは CDATA[ と The の間にあるようですが、その間に文字は見えず、その部分はファイル内の他のすべての CDATA ブロックと同じです。Features 要素全体とその内容を削除すると、ファイルは正常に読み込まれます。

ファイルへのリンクは次のとおりです: http://test.hhdev.hothousemarketing.com/inventory.xml

4

2 に答える 2

0

一部の文字は、CDATA セクションであっても、エンティティでエンコードされていても、XML では許可されていません。

UTF-8 文字列 (未テスト) でこれを使用できる場合があります。

$xml_legal_chars = preg_replace('/[\x{00}-\x{08}\x{0B}\x{0C}\x{0E}-\x{1F}\x{D800}-\x{DFFF}\x{FFFE}\x{FFFF}]/u', '', $utf8string);
于 2013-04-03T19:55:06.910 に答える