据我了解,您需要在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输出文件中?