下面给你整理一份详解 XML 中标签与元素使用的系统教程,涵盖概念、语法、类型、嵌套规则、最佳实践以及实战示例。
📘 一、XML 标签与元素的基本概念
1️⃣ 标签(Tag)
- 定义:标签是 XML 文档中用于标记元素开始和结束的标记符号。
- 特点:
- 用尖括号
< >包围 - 开始标签
<element>与结束标签</element>配对 - 标签名遵循 XML 命名规则(字母开头,可包含字母、数字、下划线
_、连字符-)
- 用尖括号
示例:
<book>...</book>
2️⃣ 元素(Element)
- 定义:元素是 XML 文档的核心结构单元,由开始标签、内容和结束标签组成,可包含属性、文本、子元素或混合内容。
- 特点:
- 元素有 标签 表示边界
- 可以嵌套其他元素
- 可以包含文本或空内容
示例:
<book id="b001">
<title>宇宙简史</title>
<author>Stephen Hawking</author>
</book>
book、title、author都是元素id是属性,存储附加信息
📘 二、XML 标签与元素语法规则
- 开始标签与结束标签必须匹配:
<book>内容</book> ✅
<book>内容</books> ❌
- 标签区分大小写:
<Book>内容</Book> ❌
<book>内容</book> ✅
- 属性书写在开始标签内:
<book id="b001" category="Science">...</book>
- 空元素可以使用自闭合标签:
<price currency="USD" /> <!-- 等价于 <price currency="USD"></price> -->
- 元素可以嵌套:
<library>
<book>
<title>XML指南</title>
<author>阿杰</author>
</book>
</library>
- 根元素必须唯一:
<library>...</library> ✅
<book>...</book>
<author>...</author> ❌ # 多根元素错误
📘 三、XML 元素的类型
1️⃣ 简单元素(Simple Element)
- 定义:只包含文本,不包含子元素或属性
- 示例:
<title>宇宙简史</title>
2️⃣ 复杂元素(Complex Element)
- 定义:包含属性、子元素或混合内容
- 示例:
<book id="b001" category="Science">
<title>宇宙简史</title>
<author>Stephen Hawking</author>
</book>
3️⃣ 空元素(Empty Element)
- 定义:不含文本或子元素
- 写法:自闭合
<element />或<element></element> - 示例:
<price currency="USD" />
📘 四、元素嵌套规则
- 元素可以无限嵌套,但必须闭合
- 标签顺序需与 DTD/XSD 或约定规则一致
- 不允许标签交叉:
<parent>
<child1>
<child2></child2>
</child1> ❌ 错误
</parent>
正确:
<parent>
<child1></child1>
<child2></child2>
</parent>
- 根元素必须唯一,所有其他元素都必须在根元素内部
📘 五、元素内容类型
- 文本内容(Character Data):
<title>XML 入门</title>
- 元素嵌套(子元素):
<book>
<title>XML 入门</title>
<author>阿杰</author>
</book>
- 混合内容(文本 + 子元素):
<paragraph>
欢迎阅读 <b>XML 教程</b> ,掌握基础知识。
</paragraph>
- CDATA 区块:
<script><![CDATA[
alert("Hello, XML!");
]]></script>
📘 六、元素访问与操作示例
1️⃣ Java DOM
Element book = (Element) doc.getElementsByTagName("book").item(0);
String title = book.getElementsByTagName("title").item(0).getTextContent();
book.setAttribute("category", "History");
2️⃣ Python lxml
book = tree.find('book')
title = book.find('title').text
book.set('category', 'History')
3️⃣ JavaScript(浏览器)
let book = document.querySelector('book');
let title = book.querySelector('title').textContent;
book.setAttribute('category', 'History');
📘 七、标签与元素最佳实践
- 元素命名:
- 使用有意义名称
- 避免特殊字符
- 使用小写或驼峰命名统一风格
- 标签闭合:
- 必须配对,避免解析错误
- 自闭合空元素:
- 提高可读性和简洁性
- 元素嵌套:
- 尽量保持结构清晰,避免深度过深
- 属性与子元素选择:
- 简单信息用属性
- 复杂信息用子元素
📘 八、综合示例
<?xml version="1.0" encoding="UTF-8"?>
<library>
<!-- 图书信息 -->
<book id="b001" category="Science">
<title>宇宙简史</title>
<author>Stephen Hawking</author>
<price currency="USD">68</price>
</book>
<book id="b002" category="History">
<title>人类简史</title>
<author>Yuval Noah Harari</author>
<price currency="USD">45</price>
</book>
</library>
library是根元素book是复杂元素,含属性、子元素title、author、price是简单元素- 属性存储额外信息,如
id、category、currency
📘 九、总结
- 标签是元素的标记,用
<name>和</name>包围 - 元素是 XML 的核心单元,可包含文本、属性、子元素
- 元素类型:简单元素、复杂元素、空元素
- 元素嵌套必须规范、根元素唯一
- 属性用于描述,子元素用于复杂内容
- 合理设计标签与元素结构可提高 XML 可读性和可维护性
发表回复