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

Why XHTML markup does not generate parsing error?

我开始学习 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 个文件?

我正在使用 google chrome。我了解其中的差异,但实际上无法在浏览器中查看。谁能帮我解决这个问题。

大多数网络浏览器都有 XML 和 HTML 解析器。它们使用不同的规则。

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

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