代码之家  ›  专栏  ›  技术社区  ›  user3205479

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

  •  0
  • user3205479  · 技术社区  · 10 年前

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

    我正在使用谷歌chrome。我理解这些差异,但无法在浏览器中实际查看。有人能帮我弄清楚吗。

    1 回复  |  直到 10 年前
        1
  •  2
  •   Quentin    10 年前

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

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

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