xml文件学习(xml格式)可扩展标记语言(Extensible Markup Language)

2023-12-29 11:52

本文主要是介绍xml文件学习(xml格式)可扩展标记语言(Extensible Markup Language),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XML 教程

文章目录

  • XML 文件学习
    • 1. XML 概述
      • 1.1 什么是 XML?
      • 1.2 XML 有什么作用?
    • 2. XML 基本结构
      • 1. 声明
      • 2. 元素
      • 3. 属性
      • 4. 文本
      • 5. 注释
    • 3. XML 高级知识
      • 3.1 XML 命名空间
      • 3.2 XML 架构
      • 3.3 XML 工具
      • 3.4 XML 技术
    • 4. XML 应用实例

XML 文件学习

XML,全称为可扩展标记语言(Extensible Markup Language),被广泛用于存储和传输数据。在深入研究XML的使用前,有必要先了解其基本概念以及常见的应用场景。

1. XML 概述

1.1 什么是 XML?

XML 是一种用于存储和传输数据的工具,而非编程语言。它主要用于描述数据和文本,与HTML类似,但XML比HTML更强大,因为它允许自定义标签。

1.2 XML 有什么作用?

XML 的主要作用是方便数据的共享、传输和平台无关性。例如,可以使用XML来在不同的系统之间交换数据,包括Internet上的业务数据交换。

2. XML 基本结构

XML(可扩展标记语言)是一种用于编码文档的标记语言,它允许定义各种数据类型,包括文本、数字、日期、时间、布尔值等。

以下是一个XML文档的例子:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore><book category="COOKING"><title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book><book category="CHILDREN"><title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
</bookstore>

一个XML文档由以下几个基本部分组成:

1. 声明

每个XML文档都以XML声明开始,这个声明通常包含XML版本和字符集信息。例如:

<?xml version="1.0" encoding="UTF-8"?>

在这个例子中,version属性表示XML规范的版本,encoding属性表示字符集。

2. 元素

XML元素是XML文档的主体,由开始标签、结束标签和包含在其中的内容(可能是其他元素、文本或混合内容)组成。例如:

<book><title>The Lord of the Rings</title><author>J. R. R. Tolkien</author>
</book>

在这个例子中,booktitleauthor都是元素。

3. 属性

XML属性为元素提供附加信息,出现在开始标签内,以名称-值对的形式存在。例如:

<book id="123"><title>The Lord of the Rings</title><author>J. R. R. Tolkien</author>
</book>

在这个例子中,idbook元素的属性,其值为"123"。

4. 文本

XML文本是元素的内容,位于开始标签和结束标签之间。例如:

<title>The Lord of the Rings</title>

在这个例子中,"The Lord of the Rings"就是文本。

5. 注释

XML注释用于在XML文档中添加注解,注释不会被XML解析器解析。例如:

<!-- This is a comment -->

以上就是XML的基本结构。需要注意的是,所有的XML元素必须有关闭标签,XML标签对大小写敏感,且XML文档必须正确嵌套。

3. XML 高级知识

3.1 XML 命名空间

为了避免命名冲突,XML支持命名空间的概念。这对于合并两个不同来源的XML文档特别有用。

例如:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture"><h:table><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td></h:tr>
</h:table><f:table><f:name>African Coffee Table</f:name><f:width>80</f:width><f:length>120</f:length>
</f:table></root>

在这个例子中,“h”和“f”是分别定义在"http://www.w3.org/TR/html4/"和"http://www.w3schools.com/furniture"上的命名空间。

3.2 XML 架构

XML架构是一个XML "应用"或"语言"的定义。最常见的是DTD(文档类型定义)和XSD(XML Schema Definition)。

例如,下面是一个简单的XSD(XML Schema Definition):

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

这个XSD定义了一个元素“note”,它包含四个字符串类型的子元素:to、from、heading和body。

3.3 XML 工具

有许多可用的XML解析器,例如:SAX, DOM 等。以及一些工具库如 JAXB, JDOM, Xerces, Xalan, etc.

例如,使用Python的xml.etree.ElementTree模块(类似于DOM)解析XML:

import xml.etree.ElementTree as ETdata = """
<bookstore><book category="COOKING"><title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book>
</bookstore>
"""root = ET.fromstring(data)for book in root.findall('book'):title = book.find('title').textauthor = book.find('author').textprint(title, author)

3.4 XML 技术

包括XSLT、XPath、XQuery、SOAP等都是基于XML的技术。

例如,下面是一个简单的XSLT样式表,它将XML文档转换为HTML:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/"><html><body><h2>Bookstore</h2><table border="1"><tr bgcolor="#9acd32"><th>Title</th><th>Author</th></tr><xsl:for-each select="bookstore/book"><tr><td><xsl:value-of select="title"/></td><td><xsl:value-of select="author"/></td></tr></xsl:for-each></table></body></html>
</xsl:template>
</xsl:stylesheet>

4. XML 应用实例

假设我们有一个需求,需要创建一个XML文档来描述一个图书馆的书籍信息。每本书都有ISBN、标题、作者和出版年份等信息。

基于这个需求,我们可以逐步构建如下的XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<library><book isbn="978-3-16-148410-0"><title>The Lord of the Rings</title><author>J. R. R. Tolkien</author><year>1954</year></book><book isbn="978-0-7432-4722-0"><title>A Brief History of Time</title><author>Stephen Hawking</author><year>1988</year></book><!-- 更多的书籍信息... -->
</library>

在这个XML文档中,library元素是根元素,它包含多个book元素。每个book元素都有一个属性isbn,并包含三个子元素:titleauthoryear

XML是一种非常灵活的数据表示方式,可以轻松地添加、删除或修改元素和属性以满足各种需求。例如,如果我们需要为每本书添加价格信息,只需在book元素内添加一个新的price元素即可。


以上是关于XML的一些基础和高级知识。在深入了解这些内容后,可以开始尝试使用XML来存储和传输数据。

这篇关于xml文件学习(xml格式)可扩展标记语言(Extensible Markup Language)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/549360

相关文章

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用