问题
是否有可能通过HTTP header
或html
代码告诉浏览器发生时该怎么做XML Parsing Error
?比如可能X-OnXmlParsingError
,<meta name="onXmlParsingError" href="http://example.com"/>
等等。
附加信息
更多信息:我生成带有标题XHTML
的代码发送到浏览器。application/xhtml+xml
因此,当我的xhtml
代码出现问题时,会显示浏览器而不是我漂亮的网页XML Parsing Error
——这是预期的行为。但是我想更改它,并告诉每个浏览器在发生此错误时该怎么做。例如,重定向到带有一些友好消息的格式错误的自定义页面。
我知道我可以解析服务器端的输出代码,但我不想要这个。它的效率非常低,并且格式错误的代码的概率几乎是 0,但仍然如此。
浏览器
歌剧
隐藏问题:
(...) 我们决定停止抛出严厉的 XML 解析失败错误消息,而是尝试将文档自动重新解析为 HTML。它不再在浏览器中显示错误消息,而是转储到控制台,因此作为开发人员,如果您愿意,您仍然可以在 Opera Dragonfly 和错误控制台中找到 XML 解析错误警告。
火狐
生成
<parserror>(...)</parseerror>
而不是 normal 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
我强烈建议阅读已接受答案下的评论。