当前位置:首页>python>Python开发从零开始-44.5-解析 XML

Python开发从零开始-44.5-解析 XML

  • 2026-10-11 05:41:21
Python开发从零开始-44.5-解析 XML

接上文Python开发从零开始-44.4-解析 XML,本文小编与大家分享 Python 解析 XML 的相关知识。

10、XML 模式定义

(1)什么是 XML 模式定义

XML 模式定义(XML Schema Definition‌,简称 ‌XSD‌)是由 W3C 制定的国际标准,用于以 XML 语法描述和验证 XML 文档的结构、内容及数据类型。它是早期 DTD 的增强替代品,具备更强的数据约束能力和命名空间支持 。‌‌

(2)核心功能

  • ‌结构验证‌:定义允许的元素、属性及其层级关系、出现顺序和次数;

  • ‌数据类型约束‌:支持内置类型(如 xs:string、xs:integer、xs:date)及自定义类型,可限制值范围、长度、正则匹配等 ;

  • ‌自文档化‌:XSD 本身是 XML 文件(扩展名为 .xsd),可读性强,支持通过 XSLT 转换生成文档或代码 。‌‌

(3)关键组成要素

  • ‌根元素‌:<xs:schema>,需使用xmlns:xs 属性声明命名空间 xmlns:xs="http://www.w3.org/2001/XMLSchema" ;

  • ‌元素声明‌:使用 <xs:element>,通过 name 指定名称,type 指定数据类型 ;

  • ‌类型定义‌:

    • 简单类型‌ (simpleType):仅包含文本,无子元素或属性,常用于基础数据约束 ;

    • 复杂类型‌ (complexType):可包含子元素、属性或混合内容,通过 sequence(有序)、choice(互斥)、all(无序)定义内容模型 。

  • ‌约束面 (Facets)‌:如 minLength / maxLength、pattern(正则)、enumeration(枚举值),用于细化数据规则 。‌‌

(4)XSD 实例

下例是一个简单的 XSD 文件(扩展名为 .xsd)

<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema">  <xs:elementname="note">    <xs:complexType>      <xs:sequence>        <xs:elementname="to"type="xs:string"/>        <xs:elementname="from"type="xs:string"/>        <xs:elementname="heading"type="xs:string"/>        <xs:elementname="body"type="xs:string"/>      </xs:sequence>    </xs:complexType>  </xs:element></xs:schema>

有关 XSD 语法大家可以查看官方文档或网络教程。

11、XML 注释

XML 注释主要用于解释代码功能、记录修改历史和临时禁用代码。注释以 <!-- 开始并以 --> 结束,例如:

<!-- 这是一段注释文本 -->

注释使用注意事项:

  • ‌基本格式是 <!-- 注释内容 -->‌,中间可以放任何合法的 XML 字符;

  • 注释可以出现在文档序言中,包括文档类型定义 (DTD);

  • XML声明之前不能有注释‌,注释要放在声明后面;

  • ‌注释不能出现在属性值中‌,也不能写在标记内;

  • 注释可以放在根元素之前或之后‌,也可以穿插在文本内容中间;

  • ‌注释不能嵌套‌,例如 <!-- 外层 <!-- 内层 --> --> 会报错;

  • ‌注释里不能出现双连字符 --‌,注释标记 --> 之前的 -- 会提前结束注释。‌‌‌

12、XML 元素是可扩展的

XML 元素是可扩展,可以动态添加以携带更多的信息。假设下例 XML 文档中有 <student>、<name>、<age> 三个元素。

<?xml version="1.0" encoding="UTF-8"?><student>    <name>Jack</name>    <age>20</age></student>

如果后期对该文档进行了修改,添加了 <id> 元素

<?xml version="1.0" encoding="UTF-8"?><student>    <id>1001</id>    <name>Jack</name>    <age>20</age></student>

这时读取该 XML 文档的程序依然能够正常读取 <student>、<name>、<age> 元素。XML 的优势之一,就是可以在不中断应用程序的情况下进行扩展。

13、查看 XML 文件

所有主流的浏览器中,均能够查看原始的 XML 文件。例如使用 Edge 浏览器查看 XML 文件效果如下图所示:

14、XPath 和 XML DOM

XPath 是用来在 XML 或 HTML 文档里精准定位元素的查询语言‌,它是 W3C 国际标准,广泛应用于数据提取、网页爬虫和自动化测试等领域。‌‌

XML DOM(Document Object Model,文档对象模型)是用于访问和操作XML文档的标准编程接口。它将 XML 文档表示为树形结构,其中每个元素和属性都是一个节点。通过 XML DOM,开发者可以动态地获取、修改、添加或删除XML文档中的内容。

有关 XPath 和 XML DOM 相关内容,后续文章还会进行介绍,大家可以先建立初步印象。

15、XSLT

XSLT(eXtensible Stylesheet Language Transformations,可扩展样式表语言转换)是一种用于将 XML 文档转换为其他格式(如 HTML、XHTML 或其他 XML 格式)的语言。它主要通过定义模板规则来实现对XML数据的转换和格式化。

虽然同样可以使用 CSS (Cascading Style Sheets,层叠样式表)来转换XML 文档,但并不常用,XSLT 是首选。

有关 XSLT 或 CSS 相关内容,大家可以查看官方文档或网络教程。

受文章篇幅所限,下文将继续介绍 Python 解析 XML 的相关知识。

最新文章

随机文章