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

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)

XML 教程 文章目录 XML 文件学习1. XML 概述1.1 什么是 XML&#xff1f;1.2 XML 有什么作用&#xff1f; 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&#…...

nodejs+vue+ElementUi家政服务系统c90g5

项目中登录模块用到token家政服务平台有管理员&#xff0c;雇主&#xff0c;雇员三个角色。管理员功能有个人中心&#xff0c;雇主管理&#xff0c;雇员管理&#xff0c;资料认证管理&#xff0c;项目类型管理&#xff0c;服务项目管理&#xff0c;需求信息管理&#xff0c;服务…...

数据库(Database)基础知识

什么是数据库 数据库是按照数据结构来组织、存储和管理数据的仓库&#xff0c;用户可以通过数据库管理系统对存储的数据进行增删改查操作。 数据库实际上是一个文件集合&#xff0c;本质就是一个文件系统&#xff0c;以文件的方式&#xff0c;将数据保存在电脑上。 什么是数据…...

QT应用篇 二、QML用Image组件实现Progress Bar 的效果

QT应用篇 一、QT上位机串口编程 二、QML用Image组件实现Progress Bar 的效果 三、QML自定义显示SpinBox的加减按键图片及显示值效果 文章目录 QT应用篇前言一、qml需求二、使用组件1.Image组件2.Image中fillMode的使用例子 总结 前言 记录自己学习QML的一些小技巧方便日后查找…...

SElinux工作原理简介并演示chcon、semanage、restorecon的使用方法

目录 一.SElinux工作原理简介 1.system_u 2.object_r 3.httpd_sys_content_t 4.s0 二.SElinux策略的具体使用详情 1.restorecon 2.semanage 3.chcon 一.SElinux工作原理简介 通过mac方式管理进程&#xff0c;管理的目标是进程是否具有读取权限的文件&#xff08;文件…...

表情串转换

前言 NWAFU 2021阶段二 D 一、题目描述 题目描述 在一个字符串中&#xff0c;设置了由‘/’前导字符和某些特定字母构成的转义子字符串&#xff0c;如“/s”、“/f”、“/c”等用于表示特殊表情符号。现要求编写一个函数&#xff0c;将给定字符串中的转义字符串转换为表情字…...

【娱乐小技巧】网页旋转90° 3步搞定

一、按F12,打开控制台&#xff1b; 二、点击号&#xff1b; 插入新body; 三、粘贴代码 -webkit-transform: rotate(90deg);小结&#xff0c;角度值可以自选&#xff1b; 代码的效果&#xff1a;...

移动管理系统软件哪家好?它是如何帮助企业降本增效的?

现在很多管理系统都可以用移动设备接入&#xff0c;最常见的就是手机。只要给管理系统创建一个微信小程序接口&#xff0c;那么要使用系统功能的时候直接打开微信小程序就可以了。例如我们小区的物业巡检就是通过微信扫码打开巡检工单记录信息的&#xff0c;直接用巡检保安自己…...

电脑表格文件丢失如何找回?3个方法拯救丢失的文件!

“太难了&#xff01;我辛辛苦苦在电脑上做的表格&#xff0c;不知道什么原因突然就没有了&#xff0c;有什么方法可以找回丢失的表格文件吗&#xff1f;快帮帮我吧&#xff01;” 在日常工作中&#xff0c;很多电脑用户可能都会用到表格文件&#xff0c;这往往记载了大量的重要…...

VSCode 如何安装插件的历史版本

背景 在日常开发过程中&#xff0c;我们可能会遇到新版VSCode插件存在问题&#xff0c;无法正常工作的情况。这种情况下&#xff0c;一种可行的解决方案就是安装插件的历史版本。VSCode 插件默认安装的都是插件最新的版本&#xff0c;例如下面 vscode-styled-compoents 插件 本…...

关于edge浏览器以及插件推荐

目录 广告拦截和隐私工具 密码管理器 生产力和组织工具 写作和语法工具 购物助手 娱乐和个性化 安全性和VPN 开发者工具 其他实用工具 Microsoft Edge 是一款基于Chromium开源项目的现代网络浏览器&#xff0c;由微软开发。它是Internet Explorer的继任者&#xff0c;…...

Vue Tinymce富文本组件自定义操作按钮

想实现如下效果 首先在init方法中的增加一插件 增加一个setup方法 代码 setup: function(editor) { editor.ui.registry.addButton(testButton, {text: 日记日期,tooltip: 插入日记日期,onAction: () > editor.insertContent("123456")});}, 操作效果&#xff0…...

论文阅读:Blind Super-Resolution Kernel Estimation using an Internal-GAN

这是发表在 2019 年 NIPS 上的一篇文章&#xff0c;那个时候还叫 NIPS&#xff0c;现在已经改名为 NeurIPS 了。文章中的其中一个作者 Michal Irani 是以色 Weizmann Institute of Science (魏茨曼科学研究学院) 的一名教授&#xff0c;对图像纹理的内在统计规律有着很深入的研…...

韩国Neowine车规认证加密芯片ALPU-CV

由工采网代理的ALPU-CV是韩国Neowine&#xff08;纽文微&#xff09;推出的一款高性能车规级加密芯片&#xff1b;也是ALPU系列中的高端IC&#xff0c;该芯片通过《AEC-Q100》认证&#xff0c;目前已经在国产前装车辆配件量产使用&#xff0c;主要用于版权license保护、设备防伪…...

【每日一题】收集巧克力

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;枚举操作数 写在最后 Tag 【枚举】【数组】【2023-12-28】 题目来源 2735. 收集巧克力 题目解读 有长度为 n, 下标从 0 开始的整数数组 nums, 表示收集不同类型的巧克力的成本. nums[i] 表示收集类型 i 巧克力的成本…...

【开源】基于Vue+SpringBoot的贫困地区人口信息管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 人口信息管理模块2.2 精准扶贫管理模块2.3 特殊群体管理模块2.4 案件信息管理模块2.5 物资补助模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 人口表3.2.2 扶贫表3.2.3 特殊群体表3.2.4 案件表3.2.5 物资补助表 四…...

八股文打卡day7——计算机网络(7)

面试题&#xff1a;HTTPS和HTTP的区别 我的回答&#xff1a; 1.加密方式&#xff1a;HTTP是明文传输&#xff1b;HTTPS使用了SSL/TLS进行加密传输。 2.安全性&#xff1a;由于HTTP是明文传输的&#xff0c;所以数据内容容易被第三方截获和读取。而HTTPS通过SSL/TLS进行加密传…...

南大通用数据库 GBase 8a 性能调优方法--Hash索引

南大通用数据库--GBase 8a中建立Hash Index 通常可以用来解决等值查询的定位效率&#xff0c;特别是对以单表精确查询为主的应用场景尤为适合&#xff0c;如电信业务中的并发话单查询等&#xff08;特别是内存基本充足的场景&#xff09;。 默认创建GLOBAL的哈希索引。创建全局…...

openFeign调用接口时传递表单参数、Json参数、HttpServletRequest对象

目录 一、控制器二、Feign客户端 openFeign调用接口时传递Json参数以及httpservletrequest对象 一、控制器 RestController RequestMapping("test") public class TestController {/*** 用来测试表单参数传递&#xff1a;单个参数*/PostMapping(value "/formD…...

中国人民银行总行原稽核司副司长王书刚一行莅临国鑫走访交流

12月27日&#xff0c;中国人民银行总行原稽核司副司长王书刚一行莅临Gooxi走访交流&#xff0c;Gooxi相关领导、接待人员陪同调研并汇报了公司有关情况。 中国人民银行总行原稽核司副司长王书刚一行莅临国鑫 在座谈会交流环节&#xff0c;Gooxi接待领导对中国人民银行行长期以来…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...