XML基础知识讲解
文章目录
- 1. xml简介
- 2. xml快速入门
- 3. xml的元素(标签)定义
- 4. xml标签的命名规范
- 5. xml的属性定义和注释
- 6. 转义字符
- 7. CDATA区
- 8. xml的处理指令
- 9. xml的约束
1. xml简介
XML(eXtensible Markup Language)是一种用于描述数据的标记语。
它以纯文本的方式存储数据,并使用标签来标记数据的结构和含义。XML被设计用于传输和存储数据,同时也可作为配置文件和数据交换的格式。
2. xml快速入门
创建一个xml文档,必须要有文档说明且必须放在第一行
<?xml version="1.0" encoding="UTF-8" ?>
-
version(必须要有): 表示xml的版本(1.0和1.1)
- 注: 1.1不会向下兼容,一般都是1.0
-
encoding(可选): 表示xml的编码格式,例如:UTF8,GBK等
xml使用示例:
<?xml version="1.0" encoding="UTF-8" ?>
<root><person>111</person>
</root>
对于xml文档,可以使用浏览器打开

3. xml的元素(标签)定义
-
xml文档中只能有一个根标签
-
用户可自定义标签,例如:
<person></person>- 结束标签比开始标签多了一个
/
- 结束标签比开始标签多了一个
-
标签的定义有开始必须要有结束
-
标签必须是合理嵌套
4. xml标签的命名规范
- 标签区分大小写
- 标签不能以数字或者下划线开头
- 不能以xml等关键字开头
- 不能包含空格
- 名称中间不能有
:
注: xml在解析时会把空格和换行都当成内容来处理
5. xml的属性定义和注释
属性定义:
- 每个标签可以有多个属性,但是属性不能相同
- 属性和属性之间要使用引号(单引号或双引号)
- 属性名称的命名规范和元素名称的命名规范相同
示例:

注释:
<!-- 注释内容 -->
注释不能嵌套
6. 转义字符
在XML中,有几个特殊字符被认为是保留字符,不能直接在文本中使用,而是需要使用转义字符来表示。
以下是XML中常见的转义字符:
<- 表示小于号<>- 表示大于号>&- 表示和符号&"- 表示双引号"'- 表示单引号'
示例:

7. CDATA区
CDATA(Character Data)区是XML中的一个特殊区域,用于包含文本数据,其中可以包含任何字符,包括XML保留字符和特殊字符,而不需要进行转义。
CDATA区是由<![CDATA[开始,以]]>结束。
<![CDATA[]]>
CDATA区中的内容将被视为纯文本,不会被解析为XML标记。CDATA区常用于包含包含特殊字符或大量文本的数据,以避免不必要的转义。
示例:

8. xml的处理指令
XML中,处理指令是用来指导XML解析器或其他处理工具对XML文档进行处理的指令。它们以<?开始,以?>结束,并位于XML文档的开头。
常见的XML处理指令包括:
- XML声明:
<?xml version="1.0" encoding="UTF-8"?>。这是XML文档的第一个处理指令,用于指定XML版本和字符编码。 - 样式表处理指令:
<?xml-stylesheet type="text/xsl" href="style.xsl"?>。用于引用XSL样式表,用于对XML文档进行转换和呈现。 - 实体处理指令:
<!ENTITY name "value">。用于定义实体,可以在XML文档中引用并展开为对应的值。 - 命名空间处理指令:
xmlns:prefix="namespace"。用于定义命名空间和命名空间前缀,以在XML文档中标识元素和属性的命名空间。
这些处理指令可以向XML解析器提供关于XML文档的附加信息,或者指示如何处理XML文档。处理指令通常出现在XML文档的开头,但不是必需的。
9. xml的约束
xml的约束就是指xml中可以出现哪些元素以及不能出现哪些元素
常见的两种约束:
- DTD
- schema
DTD是一种基本的XML约束语言,用于定义XML文档的元素、属性和实体,以及它们之间的关系和约束。DTD使用一组规则来验证XML文档的结构和内容,确保它们符合DTD中定义的规范。
Schema是一种更强大和灵活的XML约束语言,用于定义XML文档的结构、数据类型和约束。XML Schema使用XML语法来定义元素、属性、数据类型、约束和关系,可以进行更复杂的验证和约束。

相关文章:
XML基础知识讲解
文章目录 1. xml简介2. xml快速入门3. xml的元素(标签)定义4. xml标签的命名规范5. xml的属性定义和注释6. 转义字符7. CDATA区8. xml的处理指令9. xml的约束 1. xml简介 XML(eXtensible Markup Language)是一种用于描述数据的标记语。 它以纯文本的方…...
(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移
前言 本节内容主要介绍一下hadoop集群下实现HDFS高可用的自动故障转移,HDFS高可用的自动故障转移主要通过zookeeper实现故障的监控和主节点的切换。自动故障转移为 HDFS 部署增加了两个新组件:ZooKeeper 和 ZKFailoverController (ZKFC&…...
Ubuntu下载deb包及其依赖包
一、简介 有时我们需要在离线环境使用提前准备好的deb包,然后只需要在新机器使用dpkg -i安装即可。 二、命令 apt-get download $(apt-rdepends (需要下载的包,可以有多个) | grep -v "^ " | sed s/debconf-2.0/debco…...
Ubuntu中解/压缩命令
一、zip文件 #解压 unzip filename.zip #压缩 zip filename.zip dirname # 递归处理,将指定目录下的所有文件和子目录一并压缩 zip -r filename.zip dirname 二、tar文件 # 解压 tar xvf FileName.tar # 压缩,将DirName和其下所有文件(夹)打包非压…...
剑指 Offer 12. 矩阵中的路径(回溯 DFS)
文章目录 题目描述思路分析完整代码 题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成ÿ…...
iceberg对比hive优势
1.事务性 从事务性上来说,iceberg具有更高的数据质量。 因为iceberg本质是一种table format,屏蔽了底层的存储细节,写入数据时候需要严格按照schema写入。而hive可以先写入底层数据,然后使用load partition的方式来加载分区。这样…...
ProgressBar基本使用
作用:进度条,用于展示某个任务的完成情况, 常用属性: 设定进度条的最大、最小值、自增步长 常用事件: 后台代码: private void progressBar1_Click(object sender, EventArgs e){Thread t;//使用线程执行…...
spring boot java使用XEasyPdf生成pdf文档
java使用XEasyPdf生成pdf文档 spring boot java使用XEasyPdf生成pdf文档第一步导入maven坐标,pom.xml全部贴上第二步编写代码代码实战: spring boot java使用XEasyPdf生成pdf文档 第一步导入maven坐标,pom.xml全部贴上 <?xml version"1.0" encoding…...
自定义elementui的主题
通常情况下,我们使用elementui框架的时候默认组件的主题都是白色的,比如: 但是如果想自定义主题,改变主题颜色,以及各种默认颜色,其实也不难: 配置默认主题,选好后点击下载 在vu…...
eNSP interface g0/0/0 报错解决办法
文章目录 1 报错截图2 解决办法2.1 排查设备是否有 GM 接口2.2 更换适合的路由器,并验证 1 报错截图 2 解决办法 2.1 排查设备是否有 GM 接口 查看下设备是否支持 GM 接口(GigabitEthernet) 方式一:右键路由器设备 - 设置 - 查看…...
Metric3D:Towards Zero-shot Metric 3D Prediction from A Single Image
参考代码:Metric3D 介绍 在如MiDas、LeReS这些文章中对于来源不同的深度数据集使用归一化深度作为学习目标,则在网络学习的过程中就天然失去了对真实深度和物体尺寸的度量能力。而这篇文章比较明确地指出了影响深度估计尺度变化大的因素就是焦距 f f f…...
k8s ingress获取客户端客户端真实IP
背景 在Kubernetes中,获取客户端真实IP地址是一个常见需求。这是因为在负载均衡架构中,原始请求的源IP地址会被替换成负载均衡器的IP地址。 获取客户端真实IP的需求背景包括以下几点: 安全性:基于客户端IP进行访问控制和认证授…...
Mysql主从搭建 基于DOCKER
创建目录 #主节点目录 mkdir -p /home/data/master/mysql/#从节点目录 mkdir -p /home/data/slave/mysql/创建配置文件 # 主节点配置 touch /home/data/master/mysql/my.cnf# 从节点配置 touch /home/data/slave/mysql/my.cnf编辑配置文件 主节点配置文件 vim /home/data/m…...
Leaflet入门,地图平移跳转到指定位置和飞行到指定位置效果
前言 本章讲解如何Leaflet如何实现操作地图平移到指定位置或者飞行到指定位置效果。 vue如何使用Leaflet vue2如何使用:《Leaflet入门,如何使用vue2-leaflet实现vue2双向绑定式的使用Leaflet地图,以及初始化后拿到leaflet对象,方便调用leaflet的api》 vue3如何使用:《L…...
iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄
手边有一闲置的linux开发板iMX6ULL一直在吃灰,不用来搞点事情,总觉得对不住它。业余打发时间就玩起来吧,总比刷某音强。从某多多上买来一个usb接口的游戏手柄,让开发板支持以下它,后续就可以接着在上面玩童年经典游戏啦…...
Java 实现 SCP 携带密码拷贝文件
背景说明 涉及通过程序进行机器间的文件Copy的场景,我们一般会使用ssh连接机器,通过scp命令进行文件copy。 此种方案的前提是:机器间事先要配置免密码互通。 但是,如果客户现场机器数量过多,配置免密操作比较麻烦&a…...
Flink CEP(三)pattern动态更新
线上运行的CEP中肯定经常遇到规则变更的情况,如果每次变更时都将任务重启、重新发布是非常不优雅的。尤其在营销或者风控这种对实时性要求比较高的场景,如果规则窗口过长(一两个星期),状态过大,就会导致重启…...
抽象工厂模式(C++)
定义 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 使用场景 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。如何应对这种…...
程序员面试金典17.*
文章目录 17.01 不用加号的加法17.04 消失的数字17.05字母与数字17.06 2出现的次数17.07 婴儿名字17.08 马戏团人塔17.09 第k个数17.10 主要元素17.11 单词距离17.12 BiNode17.13 恢复空格(未做,字典树dp)17.14 最小K个数17.15 最长单词17.16…...
【瑞吉外卖项目复写】基本部分复写笔记
Day1 瑞吉外卖项目概述 mysql的数据源配置 spring:datasource:druid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/regie?serverTimezoneAsia/Shanghai&useUnicodetrue&characterEncodingutf-8&zeroDateTimeBehaviorconvertTo…...
CN3881-规格书 如韵电子 10A 降压型同步单节锂电池充电管理集成电路
概述: CN3881 是一款可使用太阳能供电的 PWM 降压模式单节锂电池充电管理集成电路,可独立对单 节锂电池充电进行管理,具有封装外形小,外围元器件少和使用简单等优点。 CN3881 采用涓流,恒流和恒压充电模式,非常适合单节…...
关于统好 AI可持续发展三大趋势
问:如何理解统好 AI 的可持续发展趋势?答:统好 AI 的可持续发展,核心是技术、业务与运营长期适配,不追求短期迭代,而是围绕企业全生命周期需求构建稳定演进路径。绵阳统好软件有限公司以一体化底座为基础&a…...
告别‘纸片人’:用AAAI 2025最新技术,打造你的高保真3D数字分身(ID-Sculpt/GraphAvatar实战)
从单张照片到高保真3D数字分身:ID-Sculpt与GraphAvatar技术实战指南 在虚拟社交、直播互动和元宇宙场景爆发的今天,一个能准确还原个人特征的3D数字分身正在从技术炫技变成刚需。传统3D建模需要专业设备和数小时扫描,而最新AAAI 2025会议亮相…...
SeamlessM4T v2:如何突破语言障碍的5个实用技巧
SeamlessM4T v2:如何突破语言障碍的5个实用技巧 【免费下载链接】seamless-m4t-v2-large 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/seamless-m4t-v2-large 想象一下这样的场景:你在参加一个国际会议,演讲者正在用你听…...
Hunyuan-MT-7B翻译模型实测:33种语言互译效果到底如何?
Hunyuan-MT-7B翻译模型实测:33种语言互译效果到底如何? 1. 引言:多语言翻译的新标杆 在全球化交流日益频繁的今天,高效准确的多语言翻译工具已成为刚需。腾讯混元团队最新开源的Hunyuan-MT-7B模型,凭借70亿参数的紧凑…...
The-Forge安全实践指南:跨平台渲染框架的终极安全保障方案
The-Forge安全实践指南:跨平台渲染框架的终极安全保障方案 【免费下载链接】The-Forge The Forge Cross-Platform Framework PC Windows, Steamdeck (native), Ray Tracing, macOS / iOS, Android, XBOX, PS4, PS5, Switch, Quest 2 项目地址: https://gitcode.co…...
从概念到工具:实战构建基于clawhub skill的个人技能管理体系
最近在整理自己的技能树时,发现需要一个能直观管理个人技术栈的工具。尝试用clawhub skill框架搭建了一套解决方案,配合InsCode(快马)平台的快速部署能力,三天就做出了可实际使用的技能看板。记录下关键实现思路,或许对同样想系统…...
测试右移的复仇:上线后bug如何让公司赔光融资
当质量防线在“最后一公里”失守在软件交付的终点线前,测试团队常被一种“虚假的安全感”所笼罩。测试环境用例全绿,性能压测数据达标,验收报告签字盖章,一切似乎都指向一个平稳的上线。然而,当代码被部署到生产环境&a…...
AFE模拟器设计实战:基于ADI系列芯片的ISOSPI菊花链通信仿真
1. ISOSPI菊花链通信的基础原理 在汽车和储能BMS系统中,电池管理芯片(AFE)之间的可靠通信至关重要。ADI公司的ADBMS系列和LTC系列芯片广泛采用ISOSPI(隔离SPI)菊花链拓扑结构,这种设计既能保证通信速率,又能实现高压隔离。我刚开始接触这个技…...
解决图像修复与纹理合成难题的Resynthesizer:开源智能填充工具全指南
解决图像修复与纹理合成难题的Resynthesizer:开源智能填充工具全指南 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer 在数字图像处理领域,我们经常面临…...
