信息标记形式 (XML, JSON, YAML)

文章目录

  • 🖥️介绍
  • 🖥️三种形式
    • 🏷️XML (Extensible Markup Language)
      • 🔖规范
      • 🔖注释
      • 🔖举例
      • 🔖其他
    • 🏷️JSON (JavaScript Object Notation)
      • 🔖规范
      • 🔖注释
      • 🔖举例
    • 🏷️YAML (YAML Ain't a Markup Language)
      • 🔖规范
      • 🔖注释
      • 🔖举例
  • 🖥️比较
  • END

🖥️介绍

ref: Python网络爬虫与信息提取_北京理工大学_中国大学MOOC(慕课) 单元5

信息标记形式是当今网络世界中非常重要的一部分。目前主要被大众认可的有三类。xml,json,yaml

  1. 标记后的信息可形成信息组织结构,增加了信息维度
  2. 标记的结构与信息一样具有重要价值
  3. 标记后的信息可用于通信、存储或展示
  4. 标记后的信息更利于程序理解和运用

🖥️三种形式

🏷️XML (Extensible Markup Language)

可扩展标记语言_百度百科 (baidu.com)

可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的子集,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 可扩展性良好,内容与形式分离,遵循严格的语法要求,保值性良好等优点。

在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。

🔖规范

  1. 文档结构:XML文档由根元素开始,所有其他元素都嵌套在根元素内。

  2. 标签:XML元素由开始标签和结束标签组成,标签名称区分大小写。

  3. 属性:元素可以有属性,属性值必须用引号包围。

  4. 实体引用:XML提供了一些预定义的实体引用,如<代表小于号<>代表大于号>

  5. 注释:注释以<!--开始,以-->结束。

  6. 命名规则:元素名称可以包含字母、数字、下划线和点,但不能以数字或下划线开头。

  7. 空元素:空元素可以用自闭合标签表示,如<element />

  8. 字符数据:元素内容可以包含文本,称为字符数据(CDATA),可以使用<]>来包含特殊字符。

  9. 命名空间:XML支持使用命名空间来避免元素名称冲突。

  10. 文档类型声明:XML文档可以包含一个文档类型声明(DOCTYPE),用于指定文档的结构。

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

🔖注释

<root><!-- 这是一个注释,它不会影响XML文档的结构 --><element attribute="value">内容</element><!-- 这是另一个注释 -->
</root>

🔖举例

<?xml version="1.0" encoding="UTF-8" ?>
<name>cuber-lotus</name>
<age>114514</age>
<bilibili><id>天赐细莲</id><url>https://space.bilibili.com/8172252</url>
</bilibili>
<language>c</language>
<language>cpp</language>
<language>python</language>
<language>golang</language>
<language>javascript</language>
<language>java</language>
<girlfriend />

🔖其他

XML与HTML区别

(1)可扩展性方面:HTML不允许用户自行定义自己的标识或属性,而在XML中,用户能够根据需要自行定义新的标识及属性名,以便更好地从语义上修饰数据。

(2)结构性方面:HTML不支持深层的结构描述,XML的文件结构嵌套可以复杂到任意程度,能表示面向对象的等级层次。

(3)可校验性方面:HTML没有提供规范文件以支持应用软件对HTML文件进行结构校验,而XML文件可以包括一个语法描述,使应用程序可以对此文件进行结构校验。

(4)可以通过将html文件转换为符合xml标准的xhtml文件,实现html标准和xml标准的结合。

🏷️JSON (JavaScript Object Notation)

JSON_百度百科 (baidu.com)

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

🔖规范

  1. 数据结构:JSON由键值对组成,键是字符串,值可以是字符串、数字、数组、布尔值或对象。
  2. 键值对:键值对用冒号分隔,键和值用逗号分隔。
  3. 字符串:字符串用双引号包围。
  4. 数字:数字不需要引号。
  5. 布尔值:布尔值为truefalse
  6. 数组:数组由方括号包围,元素可以是字符串、数字、布尔值、数组或对象。
  7. 对象:对象由大括号包围,对象中的键值对由逗号分隔。
  8. 注释:JSON标准不支持注释,但某些解析器可能允许使用特定的语法。
  9. 空值:使用null表示空值。
  10. 转义字符:字符串中使用反斜杠转义特殊字符。

🔖注释

无注释。

🔖举例

{"name": "cuber-lotus","age": 114514,"bilibili": {"id": "天赐细莲","url": "https://space.bilibili.com/8172252"},"language": ["c","cpp","python","golang","javascript","java"],"girlfriend": null
}

🏷️YAML (YAML Ain’t a Markup Language)

The Official YAML Web Site

YAML_百度百科 (baidu.com)

YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans在2001年首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。当前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。

YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

🔖规范

  1. 缩进:使用空格缩进,通常2或4个空格。
  2. 键值对:键后跟冒号和空格,然后是值。
  3. 列表:以短横线开头,后跟空格。
  4. 字典:键值对,键后跟冒号和空格,值换行。
  5. 注释:以井号开头,注释到行尾。
  6. 多行字符串:使用竖线或大于号。
  7. 引用:使用锚点和别名。
  8. 数据类型:支持字符串、整数、浮点数等。
  9. 引用文件:使用!include
  10. 数据类型转换:使用特定标记指定类型。

🔖注释

#开头的注释。

# 定义一个引用
reference: &ref_name  # 这是引用的注释name: John Doe  # 这是引用内容的注释

🔖举例

name: cuber-lotus
age: 114514
bilibili:id: 天赐细莲url: 'https://space.bilibili.com/8172252'
language:- c- cpp- python- golang- javascript- java
girlfriend: null

🖥️比较

xml

  1. 最早的通用标记语言,可扩展性好,但繁琐
  2. Internet上的信息交互与传递

json

  1. 信息有类型,适合程序处理(js),较xml简介
  2. 移动应用云和节点的信息通信,无注释

yaml

  1. 信息无类型,文本信息比例最高,可读性好
  2. 各类系统的配置文件,有注释易读

END

关注我,学习更多C/C++,算法,计算机知识

B站:

👨‍💻主页:天赐细莲 bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/334638.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue2基本创建项目

简单版项目初始化 新建一个vue2 官网文档&#xff1a;介绍 — Vue.js 先确保下载了vue的脚手架 npm install -g vue-cli npm install -g vue/cli --force vue -V 创建项目 vue create 自己起个名字 选择自己选择特性 选择&#xff1a; Babel&#xff1a;他可以将我们写…

K210 数字识别 笔记

一、烧写固件 连接k210开发板&#xff0c;点开烧录固件工具&#xff0c;选中固件&#xff0c;并下载 二、模型训练 网站&#xff1a;MaixHub 1、上传文件 2、开始标记数据 添加9个标签&#xff0c;命名为1~9&#xff0c;按键盘w开始标记&#xff0c;键盘D可以下一张图片&…

C++容器之位集(std::bitset)

目录 1 概述2 使用实例3 接口使用3.1 constructor3.2 count_and_size3.3 test3.4 any3.5 none3.6 all3.7 set3.8 reset3.9 filp3.10 to_string3.11 to_ulong3.12 to_ullong3.13 operators1 概述 位集存储位(只有两个可能值的元素:0或1,true或false,…)。   该类模拟bool…

shell脚本编译成二进制文件shc

文章目录 1. 安装shc2. 使用shc编译Shell脚本3. 执行二进制文件4. 编译后执行效率 将Shell脚本转换为二进制执行文件&#xff0c;可以使用 shc工具。 shc是一个Shell编译器&#xff0c;它可以将Shell脚本编译成二进制文件。以下是详细步骤&#xff1a; 1. 安装shc 在大多数L…

依赖的各种java库(工具类) :fastjson,lombok,jedis,druid,mybatis等

lombok 功能&#xff1a; Lombok 是一个实用的Java类库&#xff0c;可以通过简单的注解来简化和消除一些必须有但显得很臃肿的Java代码。 导入包&#xff1a;使用Lombok首先要将其作为依赖添加到项目中&#xff0c;在pom.xml文件中手动添加 <dependency><groupId&g…

C++学习/复习8--STL简介/六大组件/缺陷

一、STL简介 二、六大组件 三、面试题 四、STL缺陷

贪心算法[1]

首先用最最最经典的部分背包问题来引入贪心的思想。 由题意可知我们需要挑选出价值最大的物品放入背包&#xff0c;价值即单位价值。 我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征&#xff0c;重量和价值。 所以我们使用结构体。 上代码。 #include <i…

K8S二进制安装与部署

一、安装部署步骤 1.1 初始化配置 1.2 所有 node 节点部署docker引擎 1.3 准备cfssl证书生成工具 1.4 生成Etcd证书 1.5 部署 Master 组件 1.6 部署 Worker Node 组件 1.7 部署 CNI 网络组件-部署 flannel 1.8 部署 CoreDNS 1.9 master02 节点部署 1.10 负载均衡部署…

如何将云服务器上操作系统由centos切换为ubuntu

本文将介绍如何将我们购买的云服务器上之前装的centos切换为ubuntu&#xff0c;云服务器以华为云为例&#xff0c;要切换的ubuntu版本为ubuntu20.04。 参考官方文档&#xff1a;切换操作系统_弹性云服务器 ECS (huaweicloud.com) 首先打开华为云官网&#xff0c;登录后点击右…

每日AIGC最新进展(10):符号音乐生成SYMPLEX、新型图像编辑数据集ReasonPix2Pix、角色一致性插画生成、高级的风格个性化扩散模型

Diffusion Models专栏文章汇总:入门与实战 SYMPLEX: Controllable Symbolic Music Generation using Simplex Diffusion with Vocabulary Priors http://arxiv.org/abs/2405.12666v1 本文介绍了一种新的符号音乐生成方法,名为SYMPLEX,它基于单纯形扩散(Simplex Diffusion…

C++算术运算和自增自减运算

一 引言 表示运算的符号称为运算符。 算术运算&#xff1b; 比较运算&#xff1b; 逻辑运算&#xff1b; 位运算&#xff1b; 1 算术运算 算术运算包括加、减、乘、除、乘方、指数、对数、三角函数、求余函数&#xff0c;这些都是算术运算。 C中用、-、*、/、%分别表示加、减…

Vue3学习使用axios和qs进行POST请求和响应处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、前言1.准备工作2.发送POST请求3.处理响应数据4.总结 一、前言 在前端开发中&#xff0c;经常需要与后端进行数据交互&#xff0c;其中包括发送POST请求并处理响…

C语言学习笔记之操作符篇

目录 算术运算符 移位操作符 整型在内存中的存储&#xff08;补充知识&#xff09; ​编辑左移操作符 右移操作符 位操作符 赋值操作符 复合赋值操作符 单目操作符 关系操作符 逻辑操作符 && 与 || 的计算特点 条件操作符 逗号表达式 下标引用操作符 函…

为什么会有websocket(由来)

一、HTTP 协议的缺点和解决方案 1、HTTP 协议的缺点和解决方案 用户在使用淘宝、京东这样的网站的时候&#xff0c;每当点击一个按钮其实就是发送一个http请求。那我们先来回顾一下http请求的请求方式。 一个完整的http请求是被分为request请求节点和response响应阶段的&…

springboot项目部署到linux服务器

springboot后端 修改前 修改后 vue前端 修改前 将地址中的 localhost改为 ip 重新生成war包 war上传到linux的tomcat的webapps下 其他环境配置和macOS大差不差 Tomcat安装使用与部署Web项目的三种方法_tomcat部署web项目-CSDN博客

go升级后 编译的exe在win7上无法正常运行

D:/Go/src/runtime/sys_windows_amd64.s:65 x75 fpx22fca sp-0x22fc8日 升级到go 1.21后报一堆错误&#xff0c;要死了啊 原来是go 1.21不支持win7了&#xff0c;必须把go退回到1.20版本 谷歌发布编程语言 Go 1.21 版本&#xff1a;取消支持微软 Win7/8 及苹果 macOS 10.13/10…

linux安装mysql后,配置mysql,并连接navicate软件

Xshell连接登陆服务器 输入全局命令 mysql -u root -p 回车后&#xff0c;输入密码&#xff0c;不显示输入的密码 注意mysql服务状态&#xff0c;是否运行等 修改配置文件my.cnf&#xff0c;这里没找到就找my.ini&#xff0c;指定有一个是对的 find / -name my.cnf 接下…

MySQL数据库案例实战教程:数据类型、语法与高级查询详解

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Flink 通过 paimon 关联维表,内存降为原来的1/4

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

Windows UWP ContentDialog去掉阴影(全透明)的实现

一、前言 在WIndows开发中&#xff0c;使用UWP&#xff08;Universal WIndows&#xff09;项目开发过程中&#xff0c;使用ContentDialog 的过程中&#xff0c;我们可能并不满足现有的样式&#xff0c;这时就需要自定义样式。笔者在自定义样式过程中&#xff0c;遇到了一个难题…