XML的基本格式规则
- 主要规则:
- XML文档必须格式良好(well-formed)
- 所有标签必须关闭
- 标签名称区分大小写
- HTML内容需要转义
- 属性值必须使用引号
- 不能有交叉嵌套
<?xml version="1.0" encoding="UTF-8"?>
- 根元素:
- 必须有且只有一个根元素
- 所有其他元素都必须在根元素内
<root>
</root>
- 元素规则:
- 必须有开始和结束标签
- 标签区分大小写
- 标签名不能包含空格
<element>内容</element>
<emptyElement></emptyElement>
<emptyElement/>
<element attribute="value">
<item id="1" name="example">
<outer><inner>内容</inner></outer>
<outer><inner>内容</outer></inner>
< 表示 <
> 表示 >
& 表示 &
' 表示 '
" 表示 "
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>频道标题</title>
<link>https://example.com</link>
<description>频道描述</description>
<item>
<title>文章标题</title>
<link>https://example.com/article</link>
<description>文章描述<br/>包含HTML需要转义</description>
<pubDate>发布日期</pubDate>
<author>作者</author>
</item>
</channel>
</rss>
XML和HTML的区别
用途对比:
- HTML:专门用于显示数据和网页展示,更注重实用性和容错性
- XML:用于存储和传输数据,更注重规范性和可扩展性,是一种通用的数据格式
标签规则:
<p>段落</p>
<div>区块</div>
<span>行内元素</span>
<书籍>
<标题>XML教程</标题>
<作者>张三</作者>
</书籍>
语法严格性:
<p>可以不关闭标签
<br>可以单标签
<div>标签可以交叉<p></div></p>
<paragraph>必须关闭标签</paragraph>
<line-break/>必须自闭合
<outer><inner>不允许交叉嵌套</inner></outer>
大小写敏感性:
<DIV>等同于<div>
<Name>与<name>是不同的标签
属性值规则:
<div class=container>
<input type=text>
<element attribute="value">
<user type="admin">
空格处理:
- HTML:多个空格会被合并为一个
- XML:保留所有空格
文档结构:
<!DOCTYPE html>
<html>
<head>
<title>网页标题</title>
</head>
<body>
内容
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<任意根元素>
<任意子元素> 内容 </任意子元素>
</任意根元素>
特殊字符处理:
<div>< > & " '</div>
<text>< > & " '</text>
错误处理:
- HTML:浏览器会尝试修复错误并继续渲染
- XML:解析器遇到错误会停止处理并报错
版本兼容:
- HTML:有多个版本(HTML4, XHTML, HTML5)
- XML:始终保持一致的规范