XML文档基础
什么是XML
XML (eXtensible Markup Language,可扩展标记语言) 是一种用于存储和传输数据的文本文件格式。用户可以按照XML规则自定义标记,XML 的设计目标是传输数据,而不是显示数据,因此它是一种通用的标记语言,可用于描述各种不同类型的数据。
XML 使用自定义标签来标识数据的结构和内容,这些标签可以嵌套,形成层次结构。每个标签由尖括号 < 和 > 包围,并通常成对出现,包括一个开始标签和一个结束标签,如 <tagname>data</tagname>。标签可以带有属性,用于提供有关标签内容的附加信息。
XML 的主要特点包括:
-
自定义标签: 可以根据需要创建自己的标签,以适应特定的数据结构。
-
层次结构: 数据可以嵌套,形成层次结构,使其适用于表示复杂的数据关系。
-
文本格式: XML 文件是纯文本格式,易于阅读和编辑。
-
平台无关: XML 可以在不同的操作系统和编程语言之间进行交换和解析。
-
数据交互: XML 常用于在网络上传输数据,例如用于Web服务、配置文件、数据存储等领域。
XML 可以用于各种用途,包括配置文件、数据存储、Web服务通信、文档标记等。XML 的灵活性使其成为在不同系统之间共享和交换数据的重要工具。比如,XML可以将数据从HTML中分离出来,方便数据共享、传输和升级迭代。然而,它也可能变得冗长,因此在某些情况下,使用更轻量级的格式如JSON可能更合适。
XML对比HTML
XML(eXtensible Markup Language)和HTML(HyperText Markup Language 超文本标记)是两种标记语言,用于表示和组织文档中的内容。虽然它们具有一些相似之处,但在用途和语法上有很大的区别。以下是它们之间的一些主要对比:
-
用途:
- XML:主要用于传输和存储数据,其标记没有预定义的目的或显示格式。
- HTML:用于创建和呈现Web页面,其中标记定义了文档的结构和内容,以便在Web浏览器中呈现。
-
语法:
- XML:标记是自定义的,可以根据需要创建。XML强调文档的结构和数据。严格区分大小写。空格不会自动删除。
- HTML:标记在很大程度上是预定义的,包括标签如
<p>(段落)、<h1>(标题)、<a>(链接)等,强调文档的呈现。不区分大小写。空格自动过滤。
-
内容:
- XML:可以包含任何类型的数据,不限于文本。XML文档通常由自定义标签和数据组成,用于在不同系统之间传输和存储结构化数据。格式良好的XML文档有且只有一个根元素。
- HTML:主要包含用于构建Web页面的标签,例如文本、图像、链接等。可以有多个根元素。
-
显示:
- XML:不具有预定义的显示格式,通常用于存储和交换数据,而不是直接呈现给用户。
- HTML:具有预定义的显示格式,用于创建Web页面,可以由Web浏览器呈现给用户。
-
验证:
- XML:通常需要使用DTD(Document Type Definition)或XML Schema等验证机制来确保文档的结构和内容的正确性。
- HTML:Web浏览器通常会尝试解析和显示HTML,但如果存在错误,它们也会尝试进行容错处理。
-
扩展性:
- XML:非常灵活,可以适应各种不同的数据结构和用途。可以为不同的领域创建自定义XML标记。
- HTML:更专注于呈现Web内容,不像XML那样灵活。
总之,XML和HTML虽然都使用标记语言,但它们的设计目的和语法差异很大。XML用于存储和交换结构化数据,而HTML用于创建Web页面。每种语言都在特定领域中发挥了重要作用。
XML文档组成
一个XML文档通常由以下几部分组成:
-
XML声明(XML Declaration):XML文档的开头通常包括一个XML声明,它用于指定XML版本和字符集。示例:
<?xml version="1.0" encoding="UTF-8"?> -
根元素(Root Element):XML文档中有一个根元素,它是整个文档的顶级元素,包含其他所有元素。根元素包括开始标签和结束标签,如:
<bookstore><!-- 其他元素和内容 --> </bookstore> -
元素(Elements):XML文档包含各种元素,元素由开始标签和结束标签组成,之间可以包含文本内容、子元素或属性。示例:
<title>The Catcher in the Rye</title> -
属性(Attributes):元素可以包含属性,属性提供有关元素的附加信息。属性通常包含在元素的开始标签中。示例:
<book id="001"><!-- 元素内容 --> </book> -
注释(Comments):XML文档可以包含注释,注释用于添加文档的说明或备注,通常以
<!--开头,以-->结尾。示例:<!-- 这是一个注释 --> -
处理指令(Processing Instructions):处理指令用于包含文档处理信息,通常以
<?开头,以?>结尾。示例:<?xml-stylesheet type="text/xsl" href="styles.xsl"?> -
CDATA部分(CDATA Sections):CDATA部分允许在元素内包含不被解析的文本数据,通常用于包含代码片段或特殊字符。CDATA部分以
<![CDATA[开头,以]]>结尾。示例:<![CDATA[<p>This is some HTML content</p>]]>
这些部分共同构成了一个完整的XML文档,用于描述和组织数据。XML的灵活性使其适用于各种不同的应用程序和数据交换场景。主要就是两部分,一个是文档声明,里面有版本、编码集和是否关联外部文档。另外一个是文档元素。
相关文章:
XML文档基础
什么是XML XML (eXtensible Markup Language,可扩展标记语言) 是一种用于存储和传输数据的文本文件格式。用户可以按照XML规则自定义标记,XML 的设计目标是传输数据,而不是显示数据,因此它是一种通用的标记语言,可用于…...
软考知识汇总-软件工程
软件工程 1 能力成熟度模型(CMM)2 能力成熟度模型集成(CMMI)2.1阶段式模型2.2 连续式模型 3 软件过程模型 1 能力成熟度模型(CMM) 将软件工程成熟度分为5个级别 初始级:杂乱无章,很…...
力扣:119. 杨辉三角 II(Python3)
题目: 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 来源:力扣(LeetCode) 链接:力扣(LeetCode)…...
指针笔试题(带解析版)
题目2: struct MyStruct {int num;char* pcname;short sdate;char cha[2];short sba[4]; }*p; //结构体大小为32字节 //p0x100000 int main() {p 0x100000;printf("%p\n", p 0x1);//p:结构体指针,1下一个结构体指针,…...
服务器搭建(TCP套接字)-libevent版(服务端)
Libevent 是一个开源的事件驱动库,用于开发高性能、并发的网络应用程序。它提供了跨平台的事件处理和网络编程功能,具有高性能、可扩展性和可移植性。下面详细讲解 Libevent 的主要组成部分和使用方法。 一、事件基础结构(event_base&#x…...
斐波那契模型系列【动态规划】
动态规划步骤 1、状态表示 是什么:dp表(可能是一维或二维数组)里的值所表示的含义。 怎么来: 1、题目要求 2、经验题目要求 3、发现重复子问题 2、状态转移方程 dp[i]... 3、初始化 保证填表不越界 4、填表顺序 5、返回值 写代码时…...
【Java】微服务——Nacos注册中心
目录 1.Nacos快速入门1.1.服务注册到nacos1)引入依赖2)配置nacos地址3)重启 2.服务分级存储模型2.1.给user-service配置集群2.2.同集群优先的负载均衡 3.权重配置4.环境隔离4.1.创建namespace4.2.给微服务配置namespace 5.Nacos与Eureka的区别…...
Redis Cluster Gossip Protocol: PING, PONG, MEET
返回目录 PING / PONG / MEET 的发送 过程 计算freshNodes。freshNodes表示在消息中能携带的,在cluster节点字典中的节点总数,但需要减去myself和对端节点,因为myself的信息会存储在消息头中。实际上,并非所有在cluster节点字典…...
httpserver 下载服务器demo 以及libevent版本的 httpserver
实现效果如下: 图片可以直接显示 cpp h 这些可以直接显示 其他的 则是提示是否要下载 单线程 还有bug 代码如下 先放上来 #include "httpserver.h" #include "stdio.h" #include <stdlib.h> #include <arpa/inet.h> #include…...
构建强大的RESTful API:@RestController与@Controller的对比与应用
构建强大的RESTful API:RestController与Controller的对比与应用 前言什么是RESTful APIRestController,Controller,ResponseBody1. Controller注解:2. RestController注解:3. ResponseBody注解: 示例非thy…...
【Java-LangChain:使用 ChatGPT API 搭建系统-10】评估(下)-当不存在一个简单的正确答案时
第十章,评估(下)-当不存在一个简单的正确答案时 在上一章中,了解了如何评估 LLM 模型在 有明确正确答案 的情况下的输出,我们可以编写一个函数来判断 LLM 输出是否正确地分类并列出产品。 然而,如果 LLM …...
【微服务的集成测试】python实现-附ChatGPT解析
1.题目 微服务的集成测试 知识点:深搜 时间限制: 1s 空间限制: 256MB 限定语言:不限 题目描述: 现在有n个容器服务,服务的启动可能有一定的依赖性 (有些服务启动没有依赖)其次服务自身启动加载会消耗一些时间。 给你一个 nxn 的二维矩阵 useTime,其中 useTime[i][i]=10 表示…...
Mesa新版来袭
Mesa 17.1.6 发布了,Mesa 是一个三维(3D)图形库的开源集合,其主要目标是在 Linux / UNIX 操作系统下实现各种 API(应用程序编程接口)和 OpenGL 规范。 它面向 3D 计算机图形,硬件加速 3D 渲染和…...
基于 SpringBoot 2.7.x 使用最新的 Elasticsearch Java API Client 之 ElasticsearchClient
1. 从 RestHighLevelClient 到 ElasticsearchClient 从 Java Rest Client 7.15.0 版本开始,Elasticsearch 官方决定将 RestHighLevelClient 标记为废弃的,并推荐使用新的 Java API Client,即 ElasticsearchClient. 为什么要将 RestHighLevelC…...
辅助驾驶功能开发-功能对标篇(15)-NOA领航辅助系统-吉利
1.横向对标参数 厂商吉利车型FX11/EX11/DCY11/G636上市时间2022Q4方案6V5R+1DMS摄像头前视摄像头1*(8M)侧视摄像头/后视摄像头1环视摄像头4DMS摄像头1雷达毫米波雷达54D毫米波雷达/超声波雷达12激光雷达/域控供应商福瑞泰克辅助驾驶软件供应商福瑞泰克高精度地图百度芯片TDA4 T…...
javascript: Sorting Algorithms
// Sorting Algorithms int JavaScript https://www.geeksforgeeks.org/sorting-algorithms/ /** * file Sort.js * 1. Bubble Sort冒泡排序法 * param arry * param nszie */ function BubbleSort(arry, nszie) {var i, j, temp;var swapped;for (i 0; i < nszie - 1; i)…...
嵌入式Linux应用开发-驱动大全-同步与互斥④
嵌入式Linux应用开发-驱动大全-同步与互斥④ 第一章 同步与互斥④1.5 自旋锁spinlock的实现1.5.1 自旋锁的内核结构体1.5.2 spinlock在UP系统中的实现1.5.3 spinlock在SMP系统中的实现 1.6 信号量semaphore的实现1.6.1 semaphore的内核结构体1.6.2 down函数的实现1.6.3 up函数的…...
2023年【高压电工】证考试及高压电工复审模拟考试
题库来源:安全生产模拟考试一点通公众号小程序 高压电工证考试根据新高压电工考试大纲要求,安全生产模拟考试一点通将高压电工模拟考试试题进行汇编,组成一套高压电工全真模拟考试试题,学员可通过高压电工复审模拟考试全真模拟&a…...
C/C++学习 -- 分组密算法(3DES算法)
1. 3DES算法概述 3DES(Triple Data Encryption Standard),又称为TDEA(Triple Data Encryption Algorithm),是一种对称加密算法,是DES(Data Encryption Standard)的加强版…...
C/C++面试题总结
1.new与malloc的区别 new操作符从自由存储区上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。 使用new操作符申请内存分配时无须指定内存块的大小,而malloc则需要显式地指出所需内存的尺寸。 int *p new int; delete p;//一定要配对使用n…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
