我是我公司的应用程序开发人员,直到最近才非常关注HTML,在休息期间自学了一些JavaScript和HTML。
不断出现的一件事是HTML和XHTML之间的区别,特别是关于HTML5的文章。
令我困惑的概念是我认为HTML已经是XML格式。因此,当有人开始说XHTML是带XML的HTML时,这让我很困惑。
http://www.w3schools.com/html/html_xhtml.asp
中列出的HTML和XHTML之间几乎没有区别<!DOCTYPE>
添加到每页的第一行但除了第一点和第二点之外,其他人只是更严格的语法规则,也可以应用于HTML。此外,我认为只要遵循其他要点,就可以在HTML文档上使用XML工具。
那么区分两种不同标准的重点是什么呢?
编辑:我猜HTML5,区别更加清晰(或者更接近于包容性)。
答案 0 :(得分:2)
TL; DR:
不,HTML还不是XML格式。
更长的答案:
HTML跟随不同的规则而不是XML。当然,总的来说,XML的规则有点严格,但除了这一点之外。关键是您可以拥有有效HTML但与XML无关的文档。例如:
<title>?</title>
<p>Hello
这个甚至没有根元素。也就是说,确实如此,但是使用不可见的开始和结束标记。或者,像这样的一行
<script src="script.js"/>
是HTML中的禁忌。破坏性的结果!但它是格式良好的XML,您可以在XHTML中执行此操作 所以不,HTML几乎不是XHTML。
我创建了一个页面,其中包含HMTL和XHTML之间的差异,这比W3Schools here更完整。如果您想研究这些差异,请使用该差异。
例如,W3Schools上的项目符号列表是一个开始,但它并不完整。你还需要
<script>
和<style>
块使用相同的解析器而不是纯文本解析器进行解析。如果你在样式块中有类似HTML的东西,例如p:after {content:'</style>';}
,那就非常错误了!同上与未转义和&amp;标志<table><tr><td></td></tr></table>
这样的结构导致HTML和XHTML中的不同DOM树<a>
个name
属性作为锚点哦,至于W3Schools&#39;第一个要点,浏览器不需要DOCTYPE声明来以标准模式显示文档。在真正的XHTML文档中,您可以将其保留,并且显示没有区别
您需要的唯一时间是在文档中命名实体时,例如é
需要完整的DOCTYPE才能工作。 (一个完整的DOCTYPE,包括DTD部分,而不是简短的HTML5部分。)