信息标记方式XML、JSON与YAML

信息标记的三种形式
信息的标记
信息在传递的过程中都需要加以标记,可通过标签的方式,比如HTML,也可以通过键值对的方式name:kang,kang这个信息被标记为name,一组带有标记的信息存储起来就成了文档。
信息标记后有很多好处:

形成信息组织结构,增加信息维度
标记的结构形成了另一组信息
便于通信、存储和显示
可读性增强,利于程序理解和运用

比如,HTML是超文本信息集(文本,声音,图像,视频),是WWW的信息组织方式。HTML以标签的方式标记信息。

<div class="input-prepend search">
    <form class="form-search" action="//www.thingiverse.com/search">
        <input type="text" class="span2 search-query" name="q" placeholder="Enter a search term"/>
        <button type="submit" name="sa" class="icon"><i class="icon-search"></i></button>
    </form>
</div>

信息标记的种类
信息标记的形式有以下三种,XML,JSON,YAML。

XML(eXtensible Markup Language)扩展标记语言

利用标签进行标记语言,标签内有属性
<img src = "china.jpg" size="10">this is a picture</img>
空元素可简化表示未
<img src = "china.jpg" size="10" />
注释表示为

<!-- this is a comment -->

一个XML文档内容如下:

<!--    this is xml file    -->
<!--   Copyright w3school.com.cn  -->
<note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
</note>

JSON(JavaScript Object Notation) Javascript对象表示

"name":"kang"                       #通过键值对标记语言
"age" :21
"name":["kang","guo"]               #一个键可以对应多个值,用列表组织
"name":{"first":"w","last":"kang"}  #使用{}进行嵌套

JSON对象的好处是可以直接作为JavaScript对象进行使用,需要注意的是,JSON文件是不允许加注释的,否则会解析错误。一个JSON文件内容如下:
{
"employees": [
        { "firstName":"Bill" , "lastName":"Gates" },
        { "firstName":"George" , "lastName":"Bush" },
        { "firstName":"Thomas" , "lastName":"Carter" }
    ]
}

YAML(YAML Ain’t Markup Language)

name:kang               #无类型键值对
name:                   #表示多个值
    -kang   
    -guo        
name:
    first:w
    last :kang          #使用缩进表示嵌套
    
text:|                  #表示整块数据                                     
hello world, this YAML,YAML Ain't Markup Lauguage

一个YAML文件内容如下:

#this is a ymal file
invoice: 34843
date   : 2001-01-23
bill-to: &id001
    given  : Chris
    family : Dumars
    address:
        lines: |
            458 Walkman Dr.
            Suite #292
        city    : Royal Oak
        state   : MI
        postal  : 48046
ship-to: *id001
product:
    - sku         : BL394D
      quantity    : 4
      description : Basketball
      price       : 450.00
    - sku         : BL4438H
      quantity    : 1
      description : Super Hoop
      price       : 2392.00
tax  : 251.42
total: 4443.52
comments:
    Late afternoon is best.
    Backup contact is Nancy
    Billsmer @ 338-4338.

三种标记形式的对比

XMLJSONYMAL
最早的通用信息标记语言,可扩展性好,但繁琐信息有类型,适合程序处理,较简洁信息无类型,文本信息比例最高,可读性好
Internet上信息交互与传递移动应用云端和节点的信息通信,不能加注释各类系统的配置文件

以上三种文件的信息提取都需要解析器,比如通过bs4库的标签树进行遍历,但速度较慢。也可以直接进行搜索,找到相关的信息。可借助正则表达式(re)来实现,bs4库和re库结合使用

原文中地址:
链接:https://www.jianshu.com/p/90031894c167

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值