HTML、XML和JSON 汇总

HTML、XHTML 和 XML区别 阅读详情

  写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗。但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个人的一个学习总结。希望那些跟我一样,在实验室闷头搞科研,一出门实习完全一头雾水的同僚们可以借鉴:好多东西并没有我们想想的那么复杂,只要你肯学,迈出第一步,你就成功了一大半。与大家共勉!

  好了,想花时间接着往下看的博友们,我们可以步入正题了。

1. HTML语言

  首先,先简单的提及一下超文本标记语言HTML(HyperText Markup Language)。对于HTML语言,大家一定不陌生,没吃过猪肉,可总见过猪跑吧。

  简单来说,超文本标记语言HTML是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。“标记”是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。有关HTML的具体细节就不具体介绍了,只要记住以下三点就可以了:

  • 网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。万维网盛行的原因,很大程度上都要归功于HTML。
  • 超文本标记语言的结构包括“头”部分(Head)、和“主体”部分(Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
  • HTML被设计的目的是用来实现数据。

2. XML语言

  扩展标记语言 XML(Extensible Markup Language) 的规范定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

  简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。XML是独立于软件和硬件的信息传输工具。 目前,XML在Web中起到的作用不会亚于一直作为 Web 基石的 HTML,XML无所不在。XML是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。

2.1 XML的特点

  关于XML,记住以下几点就行了:

  • XML是一种标记语言,很类似HTML
  • XML的设计宗旨是传输数据,而非显示数据
  • XML标签没有被预定义。您需要自行定义标签。
  • XML被设计为具有自我描述性。
  • XML是W3C的推荐标准

2.2 XML与HTML的主要差异:

  • XML不是HTML的替代。
  • XML和HTML为不同的目的而设计:XML被设计为传输和存储数据,其焦点是数据的内容;HTML被设计用来显示数据,其焦点是数据的外观。
  • HTML旨在显示信息,而 XML 旨在传输信息。
  • XML是一种重量级的数据交换格式语言(详细的解释会在JSON的介绍中提及)。

  误区:XML不是用来取代HTML的,它是HTML的补充。

2.3 XML允许自定义标签

  XML被设计用来结构化、存储以及传输信息,它没有预定义的标签。在HTML中使用的标签(以及HTML的结构)是预定义的。HTML文档只使用在HTML标准中定义过的标签(比如<p>,<h1> 等等)。XML允许创作者定义自己的标签和自己的文档结构。

  举个简单的例子,比如John写给George的便签,存储为XML:

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

  上面的这条便签具有自我描述性。它拥有标题以及留言,同时包含了发送者和接受者的信息。但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在XML标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。

2.4 XML的解析

  XML目前设计了两种解析方式:DOM和 SAX。  

  1)DOM:把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存。

  2)SAX:不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。

  有关XML的详细的语法和解析介绍,可以转至下面的链接:

  10分钟掌握XML、JSON及其解析

3. JSON语言

  JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

3.1 JSON的语法规则

  JSON 语法是 JavaScript 对象表示语法的子集。

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组
  1)JSON 数据的书写格式是:名称/值对。
  名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:
“Name” : “Poll”
 
  这很容易理解,等价于这条 JavaScript 语句:
Name=“Poll”
  2)JSON 值可以是:
  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

  3)JSON有两种数据结构:

  • 对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
  • 数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
  经过对象、数组两种结构就可以组合成复杂的数据结构了。
  JSON的一个简单的例子:
{
"people": [
                { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
                { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
                { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
            ]
}

  当然,你还可以表示的更复杂一些,例如这样:

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
] }

  这里最值得注意的是,能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称 / 值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式。在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。

  看到这里,大家一定觉得JSON很容易理解吧。为大家提供一个小工具:JSON在线校验格式化工具bejson,可以自己尝试着在这里编写一写简单的JSON。

3.2 如何使用JSON?

  讲了这么多,大家一定想知道如何来使用JSON,JSON最常用的两种使用方法分别是JavaScrip(JS)和.Net,详细地细则请转至下面的博客:

  JSON详解

  当然也可以使用其他途径来读取和使用JSON,例如Python等,这个需要我们共同的去学习。

3.3 XML和JSON对比

  引用网友的一句话,“JSON和XML就像武林界的屠龙刀和倚天剑,那么他们孰强孰弱?” 那么大家一定也很想知道,谁才是武林的霸主?下面我们就一起将他们进行一下PK吧。

  (1).可读性方面:JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。 

  (2).可扩展性方面:XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

  (3).编码难度方面:XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

  (4).解码难度方面:XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

  (5).流行度方面:XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。

  (6).解析手段方面:JSON和XML同样拥有丰富的解析手段。

  (7).数据体积方面:JSON相对于XML来讲,数据的体积小,传递的速度更快些。

  (8).数据交互方面:JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。

  (9).数据描述方面:SON对数据的描述性比XML较差。

  (10).传输速度方面:JSON的速度要远远快于XML。

  为了突出展示一下两者的对比,举一个经典的例子:

  用XML表示中国部分省市数据如下:

<?xml version="1.0" encoding="utf-8"?>
<country>
    <name>中国</name>
    <province>
        <name>黑龙江</name>
        <cities>
            <city>哈尔滨</city>
            <city>大庆</city>
        </cities>
    </province>
    <province>
        <name>广东</name>
        <cities>
            <city>广州</city>
            <city>深圳</city>
            <city>珠海</city>
        </cities>
    </province>
    <province>
        <name>台湾</name>
        <cities>
            <city>台北</city>
            <city>高雄</city>
        </cities>
    </province>
    <province>
        <name>新疆</name>
        <cities>
            <city>乌鲁木齐</city>
        </cities>
    </province>
</country>

  用JSON表示:

{
    "name":"中国",
    "province":[
    {
       "name":"黑龙江",
        "cities":{
            "city":["哈尔滨","大庆"]
        }
     },
     {
        "name":"广东",
        "cities":{
            "city":["广州","深圳","珠海"]
        }
    },
    {
        "name":"台湾",
        "cities":{
            "city":["台北","高雄"]
        }
    },
    {
        "name":"新疆",
        "cities":{
            "city":["乌鲁木齐"]
        }
    }
]
}

  讲了这么多,大家也肯定是凌乱了,不光是你们,就是我也记不住这么多的内容。其实,总结一点就是:XML更像是数据传输界的长老,相对于JSON而言是一种重量型的数据交换格式;而JSON就是后起之秀,是一种轻量型的数据交换格式,两个各有优缺点,孰轻孰重还要看具体的应用环境。

转自:https://www.cnblogs.com/maybe2030/p/4558225.html

Golang XML转换:XML到JSON_CSV_HTML实战 本文旨在帮助Golang开发者掌握XML数据的处理与转换技术,特别是将XML转换为其他常用格式(JSON、CSV、HTML)的实际应用。核心概念与XML基础XML到JSON转换实战XML到CSV转换实战XML到HTML转换实战高级技巧与性能优化XML:可扩展标记语言,用于存储和传输结构化数据JSON:轻量级数据交换格式,易于人阅读和编写CSV:逗号分隔值文件,表格数据的简单表示形式HTML:超文本标记语言,用于创建网页核心概念回顾。 阅读详情

相关推荐

ABAP 怎样将XML和JSON格式转换为HTML格式显示

ABAP 将XML和JSON格式转换为HTML格式显示

weixin_42459695的博客 997

一文看懂XML,Json,XAML,HTML 区别及含义--小结

一文看懂XML,Json,XAML,HTML 区别及含义--小结

Blue 1511

高通410刷OpenWRT后网络共享配置全攻略

本文详细解析了在高通410设备刷入OpenWRT后,因基带文件丢失导致无法上网的常见问题。核心解决方案是通过SMB网络共享,将备份的原厂基带文件传输至OpenWRT系统并正确还原,从而恢复移动网络连接。文章提供了从备份基带、刷机到配置共享和文件替换的完整操作指南。

grafana6viz的博客 571

JSON在HTML页面的常见用法

由于最近写项目频繁地用到JSON,并且需要做各种结构变化以符合不同的需求,因此记录一下最近用到的一些相关的小技巧。 1.JSON对象与JSON字符串互相转化 首先定义一个json对象 var json={ m1: '21℃', m2: '22℃', m3: '23℃', m4: '20℃', m5: '20℃', m6: '20℃', ...

Mr_Chenn的博客 5483

关于42步进电机驱动——基于STM32 HAL库实现

我找了好多资料,好多关于42步进电机的都是文档,这么文档都需要积分,需要积分就算了内容还非常差,浪费时间和电脑的内存。关于大部分是基于Arduino和51去驱动的 42步进电机驱动硬件如下: 首先你要了解步进电机的驱动原理,我也不啰嗦了,请看这边博客: 二相四线,四相五线,四相六线步进电机接线及驱动方法 , 看完这篇你就知道驱动和接线的原理了。 起初我也为如何接线烦恼,因为有些博客在讲述这些问题的时候没有讲的很透彻。 方法如下: ①用万用表调到欧姆档,用其中一个表笔搭在一个引脚上,依次测其它.

Jodan132的博客 1万+

Oracle VM VirtualBox虚拟机网络配置与静态IP设置实战

本文详细讲解了Oracle VM VirtualBox虚拟机的网络配置,特别是如何设置静态IP以实现稳定访问。文章对比了NAT、桥接、仅主机等网络模式,并提供了从VirtualBox管理界面到Linux系统内部的完整配置步骤,帮助用户解决IP变动问题,构建可靠的本地开发测试环境。

weixin_28365523的博客 510

[Network] HTML、XML和JSON学习汇总

  写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗。但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个人的一个学习总结。希望那些跟我一样,在实验室闷头搞科研,一出门实习完全一头雾水的同僚们可以借鉴:好多东西并没有我们想想的那么复杂,只要你肯学,迈出第一步,你就成功了一大半。与大家共勉!   好了...

weixin_33897722的博客 528

06-esp32-idf开发调试方法(内置JTAG,OpenOCD调试)

使用VS Code和ESP-IDF进行ESP32开发和调试 在我们搭建 **IDF** 框架后,**OpenOCD** 已经自动下载好了, 我们通过 **JTAG** 接口连接使用 **OpenOCD** 进行调试。而**ESP32**芯片中内置 了**JTAG** 电路,无需额外芯片即可调试,更加方便,所以这里我们讲解使用模块自带的usb-jtag接口进行调试。

宁子希的博客 1万+

数据交换格式XML和JSON

数据交换格式XML和JSON

m0_60806965的博客 1150

Photoshop实战技巧(9)——高效去除复杂水印的五种进阶方法

本文详细介绍了Photoshop中高效去除复杂水印的五种进阶方法,包括色阶通道爆破法、频率分离高阶应用、智能填充+手动修复组合拳等专业技巧。针对半透明水印、密集文字水印等复杂场景,提供分步操作指南和实战案例,帮助用户精准去除水印同时保留原始图像细节,大幅提升工作效率。

cake8的博客 959

统信UOS开发环境支持Java

集成了JDK和多种IDE,为开发者提供了从代码编写、编译、调试到部署的一站式开发解决方案。

RZer的博客 2254

XML,JSON,HTML格式对比

1.XML格式: 优点:       XML 是一种通用的数据格式。       不必把数据强加到已定义好的格式中,而是要为数据自定义合适的标记       利用 DOM 可以完全掌控文档 缺点:       如果文档来自于服务器,就必须得保证文档含有正确的首部信息。若文档类型不正确,那么 responseXML 的值将是空的        当浏览器接收到长的 XML 文件后, DO...

海阔天空 1011

黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等)

UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。.........

黑猫奥利奥的博客 4075

HTML、XML和JSON学习汇总

转载自:http://www.cnblogs.com/maybe2030/p/4558225.html 阅读目录 1. HTML语言 2. XML语言 2.1 XML的特点 2.2 XML与HTML的主要差异: 2.3 XML允许自定义标签 2.4 XML的解析 3. JSON语言 3.1 JSON的语法规则 3.2 如何使用JSON? 3.3 XML和J

追求技术的丸子 3698

Android 9.0 SystemUI禁用长按recent键的分屏功能

​ 在9.0的系统产品开发中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现 ​

安卓兼职framework和app工程师的博客 448

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

XML、HTML 和 JSON 的区别与联系

特性XMLHTMLJSON用途数据存储与传输网页内容展示数据存储与传输结构化树形结构线性标记结构键值对嵌套结构优点描述性强,扩展性强直观,专注展示轻量,解析高效解析难度较高较低非常低。

m0_53605808的博客 1766

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HTML、XML和JSON的关系

转载自:http://www.cnblogs.com/maybe2030/p/4558225.html 阅读目录 1. HTML语言 2. XML语言 2.1 XML的特点 2.2&nbsp;XML与HTML的主要差异: 2.3 XML允许自定义标签 2.4&nbsp;XML的解析 3. JSON语言 3.1 JSON的语法规则...

落风听雨 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python 下json转xml、html,xml转json

文章目录一、说明:二、简单操作使用:1、json转xml:①、安装:②、代码中的josn③、代码:2、json转html:①、安装:②、代码:3、xml转json:①、安装:②、代码:③、去掉属性:4、html转json(暂时没有解决) 一、说明: 今天突然有个想法,吧json转化为xml和html然后就搜索,真的找到了相关的一些模块,既然有了模块,就找到几个简单的实例做个示范。 但是有一个我测试...

zhaojiafu的博客 4864

XML与HTML与JSON

XML:完全可扩展无固定标签集,用户可根据业务需求自定义任意标签,只要符合 XML 语法即可。<product><brand><stock><weather><humidity>因此 XML 适用于跨领域、自定义数据场景(如企业系统间的数据交换、配置文件)。HTML:扩展性极弱标签集由 W3C 统一规定(如 HTML5 新增<header><footer><video>),用户不能自定义标签(若写<my-tag>,浏览器无法识别,会按 “未知标签” 默认显示为 inline 元素)。

yan_lai的博客 1285

HTML、XML、JSON 是什么?有什么区别?又是做什么的?

移动开发HTML 负责网页的“外貌”XML 和 JSON 负责网页的“内容”XML 是过去的数据格式标准,适合严谨的场景。

桃之夭夭的博客 1653

如何理解html,xml,json作用

如何理解html,xml,json的作用 首先,先简单的提及一下超文本标记语言HTML(HyperText Markup Language)。对于HTML语言,大家一定不陌生,没吃过猪肉,可总见过猪跑吧。 超文本标记语言HTML是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。“标记”是指计算机所能理解的信息符号

wangliyi111的博客 863

HTML XML JSON

HTML XML JSON XML是解析HTML的一个中间产物。我们解析HTML时,可以直接对HTML进行解析,也可以先把HTML处理成XML,再对XML解析 树形结构根节点—父节点 -子节点 HTML 标签(HTML tag)见HTML学习记录破解XML XML的英文是Extensible Markup Language,翻译过来是“可扩展标记语言 HTML更加擅长于内容的表示,也就是...

Roger_may的博客 339

别再比较JSON和XML

JSON还是XML?哪一个比较好?哪一个更快?我下一个项目应该使用哪一个?这些东西没有可比性。说真的,就像比较自行车和出租车一样。他们都可以把你从家里带到办公室,对吧?在某些情况下,自行车会做得更好。但这是否意味着他们可以互相比较呢?这里同样适用于JSON和XML。它们与自己的适用范围是非常不同的.下面是一个简单的JSON数据块的样子(140个字符):{ "id": 123, "title...

xfeiman的博客 1万+

JSON和XML的区别

JSON和XML之间的区别是什么?下面本篇文章就来给大家比较一下JSON和XML,介绍JSON和XML之间的区别,希望对大家有所帮助。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它完全独立于语言。它基于JavaScript编程语言,易于理解和生成。 示例: {"Student":[ { "Name":"Vivek", "age":"20" }, { "Name":"Suraj", "age":"19" }, { "N

qq_43067585的博客 5154
上一篇: 图解MySQL 内连接、外连接
下一篇: Selenium - 简介
Memory_7s
博客等级 码龄7年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值