4

XML ファイル内の壊れたデータをどのように処理しますか? たとえば、私が持っていた場合

<text>Some &improper; text here.</text>

私はやろうとしています:

 $doc = new DOMDocument();
 $doc->validateOnParse = false;
 $doc->formatOutput = false;
 $doc->load(...xml');

未知のエンティティがあるため、惨めに失敗します。ソフトウェアの書き方が原因で、CDATA を使用できないことに注意してください。XML を読み書きするモジュールを作成していますが、ユーザーが不適切なテキストを挿入することがあります。

DOMDocument->loadHTML() がすべてを適切にエンコードしていることに気付きましたが、どうすればそこから続行できますか?

4

3 に答える 3

1

入力を xml/xhtml dom にプッシュする前に、htmlspecialcharsを使用して特別な xml 文字をシリアル化します。その名前には「html」という接頭辞が付いていますが、置き換えられる文字のみに基づいており、xml データのシリアル化に非常に役立ちます。

于 2009-11-08T06:41:19.510 に答える
0

あなたが xml を作成する場合は、xml に入力する前にユーザー入力をエンティティにエンコードできるため、問題はありません。

于 2009-11-07T07:58:49.760 に答える