当前位置: 首页 > news >正文

HTML、XHTML 和 XML区别

HTML、XHTML 和 XML 这三兄弟的区别

  • HTML: 老大哥,负责网页长啥样,性格比较随和,有点小错误也能容忍。
  • XHTML: 二哥,看着像 HTML,但规矩严,是按 XML 的规矩来的 HTML,更规范。
  • XML: 小弟,负责存储和传输数据,非常灵活,标签可以自己随便定,但规矩最严。

它们仨长啥样?(代码示例)

1. HTML (HyperText Markup Language)

  • 用途: 定义网页的内容和结构
  • 特点: 语法相对宽松,不区分大小写,标签可以不闭合(虽然不推荐)。
<!DOCTYPE html> <!-- 文档类型声明 -->
<html>
<head><title>HTML 示例</title>
</head>
<BODY> <!-- 大写也能认 --><h1>这是一个 HTML 标题</h1><p>这是一个段落。注意看,我没写结束标签 <P><img src="image.jpg" alt="示例图片"> <!-- 空标签可以不自闭合 --><br> <!-- 换行 --><P>浏览器通常也能凑合显示。</p> <!-- 大写也能认 -->
</BODY>
</html>

2. XHTML (Extensible HyperText Markup Language)

  • 用途: HTML 的 XML 版本,目标是让网页结构更严谨
  • 特点: 必须遵循 XML 的严格语法规则。
    • 标签必须小写。
    • 所有标签必须闭合(包括空标签,如 <br />)。
    • 属性值必须用引号(单或双)括起来。
    • 必须正确嵌套。
    • 必须有根元素 (<html>)。
    • 必须DOCTYPE 声明,且比 HTML 更严格。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- 严格的 DOCTYPE -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh"> <!-- 根元素,带命名空间 -->
<head><title>XHTML 示例</title> <!-- 必须小写 -->
</head>
<body><h1>这是一个 XHTML 标题</h1><p>这是一个段落。标签必须小写且闭合。</p> <!-- 必须闭合 --><img src="image.jpg" alt="示例图片" /> <!-- 空标签必须自闭合 --><br /> <!-- 空标签必须自闭合 --><p>语法非常严格。</p>
</body>
</html>

3. XML (Extensible Markup Language)

  • 用途: 主要用于存储和传输数据,而不是展示。它的重点在于数据的结构
  • 特点:
    • 没有预定义标签,标签是你自己根据数据需求自定义的。
    • 语法极其严格,必须“格式良好”(Well-formed)。
    • 必须有且只有一个根元素。
    • 所有标签必须闭合。
    • 区分大小写。
    • 属性值必须加引号。
    • 必须正确嵌套。
<?xml version="1.0" encoding="UTF-8"?> <!-- XML 声明 -->
<note> <!-- 根元素 (自定义) --><to>小明</to> <!-- 自定义标签 --><from>小红</from><heading>提醒</heading><body>周末别忘了咱们的约定!</body><priority level="high" /> <!-- 自定义属性,空标签自闭合 -->
</note>

快速区分流程图(文字版)

开始: 你想干嘛?
展示网页内容?
需要严格语法/XML兼容?
存储/传输数据?
使用 XHTML HTML的XML严格版
使用 HTML 语法宽松, 容错性好
使用 XML 自定义标签, 语法极严
考虑其他格式 如 JSON, CSV

流程解读:

  1. 你的目的是什么?
  2. 展示网页内容?
    • 是 -> 需要严格的语法和 XML 兼容性吗?
      • 是 -> 用 XHTML (重点:基于XML,语法严格)
      • 否 -> 用 HTML (重点:用于网页展示,语法宽松)
    • 否 -> 需要存储或传输结构化数据吗?
      • 是 -> 用 XML (重点:用于数据,标签自定义,语法极严)
      • 否 -> 考虑其他数据格式 (JSON 等)。

核心区别总结 (划重点!)

特性HTML (超文本标记语言)XHTML (可扩展超文本标记语言)XML (可扩展标记语言)
主要用途网页内容展示与结构更严格的网页内容展示与结构数据存储与传输
语法规则宽松, 浏览器容错性强严格, 必须符合 XML 规范非常严格, 必须格式良好 (Well-formed)
标签预定义, 不区分大小写预定义 (同HTML), 必须小写自定义, 区分大小写
闭合标签部分标签可省略闭合所有标签必须闭合 (空标签用 />)所有标签必须闭合 (空标签用 />)
属性值引号有时可省略必须用引号必须用引号
根元素<html><html> (带 xmlns 命名空间)必须有且只有一个根元素
DOCTYPE需要, 相对简单必须, 且更复杂严格不需要 (但可以有 DTD 或 Schema 定义结构)
可扩展性有限有限高度可扩展 (自己定义标签)
目标人类可读, 浏览器能渲染机器更容易解析, 跨平台兼容性更好机器可读, 数据交换

总结

  • HTML: 虽然浏览器很宽容,但写规范的 HTML(小写标签、闭合标签、属性加引号)总是好习惯,也方便向 XHTML 过渡或被工具处理。避免像示例中那样大小写混用或不闭合标签。
  • XHTML: 现在用得相对少了。HTML5 已经吸收了它的一些优点,并且更灵活。如果你不是有特定需求(比如需要严格的 XML 处理流程),直接用 HTML5 通常更方便。
  • XML: 非常适合定义清晰的数据结构,尤其是在需要验证数据格式(配合 DTD 或 XSD Schema)的场景。但对于简单的数据交换,JSON 通常更轻量、易读。

拓展学习

  • HTML5: 了解 HTML 的最新标准,它引入了许多新标签(如 <article>, <section>, <nav>, <video>, <audio>)和 API,并且在语法上比 XHTML 更灵活,同时推荐编写良好格式的代码。
  • CSS (Cascading Style Sheets): HTML/XHTML 负责结构,CSS 负责样式(颜色、布局、字体)。它们是网页开发的黄金搭档。
  • JavaScript: 让网页动起来,处理用户交互、数据请求等。
  • JSON (JavaScript Object Notation): 目前最流行的数据交换格式之一,比 XML 更简洁,尤其在 Web API 中广泛使用。了解它和 XML 的优缺点及适用场景。
  • DTD (Document Type Definition) / XSD (XML Schema Definition): 如果你深入使用 XML,需要了解如何定义 XML 文档的结构和规则,确保数据的一致性和有效性。

相关文章:

  • 关于Safari浏览器在ios<16.3版本不支持正则表达式零宽断言的解决办法
  • HTML给图片居中
  • 【OSG学习笔记】Day 7: 材质与光照——让模型“活”起来
  • 数据库-数据类型、约束 和 DQL语言
  • 内网数据库怎么通过外网访问?本地SQL无公网IP如何让公网连接实现通用方法
  • 【ES实战】Elasticsearch中模糊匹配类的查询
  • 【mysql】windows mysql命令
  • Redis 基础和高级用法入门
  • 【TensorFlow深度学习框架】从数学原理到工业级应用
  • 国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持
  • w~视觉~合集3
  • CV和NLP领域常见模型列表
  • PH热榜 | 2025-04-24
  • elementui日历显示红点及根据日程范围判断是否有红点
  • OSPF动态路由(单臂路由)
  • vue3+element-push 实现input框粘贴图片或文本,图片上传。
  • 2020-06-23 暑期学习日更计划(机器学习入门之路(资源汇总)+概率论)
  • 【农气项目】基于适宜度的产量预报
  • HOW - Code Review 流程自动化
  • 使用 Typora + PicGo + Gitee/GitHub 构建 Markdown 图床技术方案
  • 山西太原一小区发生爆炸,太原:进一步深刻汲取教训
  • 新势力4月销量出炉:零跑逾4万辆再夺冠,蔚来环比增近六成,小米下滑
  • 人民日报评论员:焕发风雨无阻、奋勇前行的精气神
  • 2025五一档新片电影总票房破亿
  • 中国人民解放军南部战区位南海海域进行例行巡航
  • 夜读丨跷脚牛肉乐翘脚