为什么XHTML标记不会生成解析错误?

时间:2015-03-10 11:33:31

标签: html xhtml

我开始学习HTML的基础知识,并研究了XHTML和HTML之间的差异。我注意到XHTML更加严格。考虑下面的标记

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/TR/xhtml1" xml:lang="en" lang="en">
<head>
   <title>Every document must have a title</title>
 </head> 
<body>
  <b><p>hey</b></p><br>
</body>
</html>

我没有正确嵌套标记,并且<br>未在XHTML中正确关闭,但它不会引发任何解析错误,当我将文件保存为test.xhtml时,它会引发解析错误。那么如何实际创建XHTML文件以及如何在HTML5中使用XHTML?有人可以解释一下,用.xhtml保存的文件是XHTML文件,而.html被视为HTML文件吗?

我使用谷歌浏览器。我理解差异但无法在浏览器中实际查看。任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

大多数Web浏览器都有XML和HTML解析器。这些使用不同的规则。

一般来说,他们遵循的规则是:

  • 如果文档具有各种XML内容类型之一,并且文档位于XHTML名称空间中:使用XML解析器
  • 如果文档具有text/html内容类型,则使用HTML解析器
  • 如果文档是从本地文件加载并具有.xhtml文件扩展名,则将其视为具有内容类型application/xhtml+xml
  • 如果文档是从本地文件加载并具有.html文件扩展名,则将其视为具有内容类型text/html