当前位置: 首页 > 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接待领导对中国人民银行行长期以来…...

单例模式学习

单例模式是应用最广的设计模式之一&#xff0c;也是程序员最熟悉的一个设计模式&#xff0c;使用单例模式的类必须保证只能有创建一个对象。 一、为什么要使用单例&#xff1f; 在开发过程中&#xff0c;很多时候一个类我们希望它只创建一个对象&#xff0c;比如&#xff1a;…...

基于Qt之QChart 图表(优美的曲线图案例)

## 项目演示 平台:ubuntu18.04 Qt版本:QT5.14.2 源码位置GitCode:https://gitcode.com/m0_45463480/QCharts/tree/main ## QChart 图表 自从 Qt 发布以来,给跨平台的用户带来很多便利。在 Qt5.7 之前,Qt 在开源社区版本里没有 Qt Charts(自带的绘图组件库)。这使得像…...

Flink1.17实战教程(第四篇:处理函数)

系列文章目录 Flink1.17实战教程&#xff08;第一篇&#xff1a;概念、部署、架构&#xff09; Flink1.17实战教程&#xff08;第二篇&#xff1a;DataStream API&#xff09; Flink1.17实战教程&#xff08;第三篇&#xff1a;时间和窗口&#xff09; Flink1.17实战教程&…...

WPF 已有资源字典文件,在xaml 里面引用

如果已经有一个资源字典文件&#xff08;通常具有 .xaml 或 .resx 扩展名&#xff09;&#xff0c;您可以在 XAML 中通过 MergedDictionaries 属性引用它。MergedDictionaries 属性允许您将多个资源字典文件合并到一个资源字典中&#xff0c;以便在 XAML 中使用。 以下是在 XA…...

ImageJ几何测量

文章目录 距离测量批量测量 科研图像和艺术图像在处理上有一个显著的区别&#xff0c;就是有着定量分析的需求&#xff0c;ImageJ也提供了多种几何何亮工具&#xff0c;包括距离和角度。 距离测量 点击菜单栏File->Open Samples&#xff0c;打开一个示例图像Leaf&#xff…...

Docker 使用详解看了挺开悟的

使用docker ps命令可以查看所有正在运行中的容器列表&#xff0c; 使用docker inspect命令我们可以查看更详细的关于某一个容器的信息。 $ docker inspect 容器id/image[{"Id": "b57ee6bbf1f4f62a5aba6a73acd53b0f9b8ec542e1f9fa9213159ffd3828c7b4",&q…...

Superset二次开发之部署问题汇总

1.ERROR: Could not build wheels for python-geohash, which is required to install pyproject.toml-based projects # 缺少 geohash whl 文件, 下载地址 www.lfd.uci.edu/~gohlke/pythonlibs/ pip install geohash文件路径 2. AttributeError: module sqlparse.keywords has…...

Mybatis行为配置之Ⅲ—其他行为配置项说明

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…...

高并发系统常见问题及解决方案(Java)

在 Java Web 应用中,高并发环境会带来一系列的挑战,这些挑战可能会影响应用的性能、稳定性和可用性。下面是一些常见的问题以及相应的解决方案: 1. 线程资源竞争 问题: 当多个线程尝试同时访问同一资源时,可能会导致竞争条件,进而影响数据的完整性。 解决方案: 使用同步…...

【鸿蒙千帆起】《钢岚》成为首款基于 HarmonyOS NEXT 开发的战棋新游

近日&#xff0c;紫龙游戏旗下 BlackJack 工作室全新战棋旗舰作品《钢岚》在华为游戏中心首发上线&#xff0c;并宣布《钢岚》完成鸿蒙原生应用开发&#xff0c;成为基于 HarmonyOS NEXT 开发的首款战棋新游&#xff0c;不但进一步丰富了鸿蒙生态战棋品类游戏内容&#xff0c;也…...