信息标记的三种形式
信息的标记
信息在传递的过程中都需要加以标记,可通过标签的方式,比如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.
三种标记形式的对比
XML | JSON | YMAL |
---|---|---|
最早的通用信息标记语言,可扩展性好,但繁琐 | 信息有类型,适合程序处理,较简洁 | 信息无类型,文本信息比例最高,可读性好 |
Internet上信息交互与传递 | 移动应用云端和节点的信息通信,不能加注释 | 各类系统的配置文件 |
以上三种文件的信息提取都需要解析器,比如通过bs4库的标签树进行遍历,但速度较慢。也可以直接进行搜索,找到相关的信息。可借助正则表达式(re)来实现,bs4库和re库结合使用。