信息標記的三種形式
信息的標記
信息在傳遞的過程中都需要加以標記,可通過標簽的方式奄妨,比如HTML涂籽,也可以通過鍵值對的方式name:kang,kang這個信息被標記為name砸抛,一組帶有標記的信息存儲起來就成了文檔评雌。
信息標記后有很多好處:
- 形成信息組織結構,增加信息維度
- 標記的結構形成了另一組信息
- 便于通信直焙、存儲和顯示
- 可讀性增強柳骄,利于程序理解和運用
比如,HTML是超文本信息集(文本箕般,聲音,圖像舔清,視頻)丝里,是WWW的信息組織方式。HTML以標簽的方式標記信息体谒。
<div class="input-prepend search">
<form class="form-search" action="http://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上信息交互與傳遞 | 移動應用云端和節(jié)點的信息通信,不能加注釋 | 各類系統(tǒng)的配置文件 |
以上三種文件的信息提取都需要解析器靡狞,比如通過bs4庫的標簽樹進行遍歷耻警,但速度較慢。也可以直接進行搜索,找到相關的信息榕栏∨锨冢可借助正則表達式(re)來實現(xiàn),bs4庫和re庫結合使用扒磁。