2

質問

発生時に何をすべきかを介してHTTP header、またはコードでブラウザに伝える可能性はありますか? 多分のように、など。htmlXML Parsing ErrorX-OnXmlParsingError<meta name="onXmlParsingError" href="http://example.com"/>

追加情報

いくつかの詳細情報:ヘッダーXHTMLを使用してブラウザーに送信するコードを生成します。application/xhtml+xmlしたがって、xhtmlコードに問題がある場合、美しい Web ページの代わりにブラウザーが表示XML Parsing Errorれます。これは予期された動作です。しかし、私はそれを変更し、このエラーが発生したときに何をすべきかをすべてのブラウザに伝えたい. たとえば、わかりやすいメッセージが表示された、不正であることが確実なカスタム ページにリダイレクトします。

サーバー側で出力コードを解析できることはわかっていますが、これは望ましくありません。それは非常に非効率的であり、不正な形式のコードの可能性は...ほぼ0ですが、それでも.

ブラウザ

オペラ

問題を隠します:

(...) 厳しい XML 解析失敗のエラー メッセージをスローするのをやめ、代わりにドキュメントを HTML として自動的に再解析することを試みることにしました。ブラウザーにエラー メッセージを表示する代わりに、コンソールにダンプされるようになったため、開発者は必要に応じて Opera Dragonfly とエラー コンソールで XML 解析エラー警告を見つけることができます。

ファイアフォックス

生成する

<parserror>(...)</parseerror>

通常の の代わりにhtml、エラーを検出するのは簡単document.documentElement === 'html'です。

サーバー側の回避策

質問の要件に加えて、私が見つけた最速の (1 秒で 2500 のチェック、T4200 @ 2.00Ghz)PHPバリデーターは次のとおりです。

<?php
// returns 1 on success and 0 on failure
xml_parse(xml_parser_create(), $stringWithHtmlCode) == 1

受け入れられた回答の下にあるコメントを読むことを強くお勧めします。

4

1 に答える 1