【发布时间】:2010-06-16 17:02:06
【问题描述】:
据我了解,您需要在 HTML 文件的顶部包含以下代码,以确保正确解析它们:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...
我通过使用 XSL 文件转换 XML 文件来生成 html 文件。这将使用 MSXML 工具来完成,该工具会生成标准 HTML 文件作为输出。
如果我这样做:
<xsl:template match="/">
<html>
...
一切都很好。但如果我这样做:
<xsl:template match="/">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...
我在 Firefox 中收到错误 XML Parsing Error: XML or text declaration not at start of entity,在 IE 中收到错误 Cannot have a DOCTYPE declaration outside of a prolog.。这大概是因为解析器找到了两个<?xml 定义并感到困惑。
如何让浏览器 a) 了解我使用的是正确的严格 HTML,以及 b) 确保将这些声明放入 MSXML 生成的 HTML 输出文件中?
【问题讨论】: