XML和YAML的使用方法_XML/RSS

來源:腳本之家  責任編輯:小易  

>-YAML可以基于流來處理YAML表達能力強,擴展性好YAML類似于XML的數據描述語言,語法比XML簡單很多,YAML試圖用一種比XML更敏捷的方式,來完成XML所完成的任務。YAML vs JSONJSON的語法其實是YAML的子集,大部分的JSON文件都可以被YAML的剖析器剖析。雖然大部分的數據分層形式也可以使用類似JSON的格式,不過YAML并不建議這樣使用,除非這樣編寫能讓文件可讀性增加,更重要的是,YAML的許多擴展在JSON是找不到的,如:*進階資料形態*、*關系錨點*、*字串不需要引號*、*映射資料形態會儲存鍵值的順序*等。YAML用途腳本語言由于實現簡單,解析成本很低,YAML特別適合在腳本語言中使用。列一下現有的語言實現:Ruby,Java,Perl,Python,PHP,OCaml,JavaScript,除了Java,其他都是腳本語言。序列化YAML比較適合做序列化。因為它是宿主語言數據類型直轉的。配置文件YAML做配置文件也不錯。寫YAML要比寫XML快得多(*無需關注標簽或引號*),并且比ini文檔功能更強。調試由于其很強的閱讀性,用于調試過程中dump出信息供分析也是一種比較方便的做法。YAML缺陷與不足YAML沒有自己的數據類型的定義,而是使用實現語言的數據類型。一個YAML文件,在不同語言中解析后得到的數據類型可能會不同,由于其兼容性問題,不同語言間的數據流轉不建議使用YAML。YAML語法與范例YAML使用可打印的Unicode字符,可使用UTF-8或UTF-16使用*空白字符*(不能使用<kbd>Tab)分層,同層元素左側對齊單行注解由井字號(<kbd>#)開始,可以出現在行中任何位置每個清單成員以單行表示,并用短杠+空白(<kbd>-)起始每個雜湊表的成員用冒號+空白(<kbd>:)分開鍵和值雜湊表的鍵值可以用問號(<kbd>?起始,表示多個詞匯組成的鍵值字串一般不使用引號,但必要的時候可以用引號框住使用雙引號表示字串時,可用倒斜線(<kbd>\\)進行特殊字符轉義區塊的字串用縮排和修飾詞(非必要)來和其他資料分隔,有新行保留(使用符號|)或新行折疊(使用符號<kbd>>)兩種方式在單一檔案中,可用連續三個連字號(<kbd>-)區分多個檔案可選擇性的連續三個點號(<kbd>.)用來表示檔案結尾(在流式傳輸時非常有用,不需要關閉流即可知道到達結尾處)重復的內容可使從參考標記星號(*)復制到錨點標記(<kbd>&)指定格式可以使用兩個驚嘆號!后面接上名稱```receipt:Oz-Ware Purchase Invoicedate:2007-08-06customer:given:Dorothyfamily:Galeitems:part_no:A4786descrip:Water Bucket(Filled)price:1.47quantity:4part_no:E1628descrip:High www.hbbz08.com Heeled "Ruby" Slippersprice:100.27quantity:1bill-to:&id001street:|123 Tornado AlleySuite 16city:East Westvillestate:KSship-to:*id001specialDelivery:>Follow the Yellow BrickRoad to the Emerald City.Pay no attention to theman behind the curtain.```這個文件的的頂層由七個鍵值組成:其中一個鍵值"items",是個兩個元素構成的清單,清單中的兩個元素同時也是包含了四個鍵值的雜湊表。文件中重復的部分處理方式:使用錨點(&)和參考(*)標簽將"bill-to"雜湊表的內容復制到"ship-to"雜湊表。也可以在文件中加入選擇性的空行,以增加可讀性。YAML的JAVA實現YAML已經有了多種語言不少實現,詳見[YAML官網](http://yaml.org/)。一般YAML文件擴展名為.yaml,比如John.yaml,其內容為:```name:John Smithage:37children:name:Jimmy Smithage:15name:Jenny Smithage:12spouse:name:Jane Smithage:25```www.13333515.buzz防采集請勿采集本網。

最近處理一些配置文件,碰到了YAML格式的文件,因為之前沒接觸過此格式的文件,對于XML還比較熟悉一些。那么什么是YAML呢?它相比XML又有哪些優缺點呢?什么情況下用YAML呢?YAML怎么使用呢?在此做一個簡單的總結吧。咱們就先從XML來說吧。

使用DataSet的ReadXml方法填充DataSet,從文件、流或XmlReader中進行讀齲根據所指定的XmlReadMode以及關系架構是否已存在,ReadXml方法讀取XML流或文檔的內容并將數據加載到DataSet中: DataSet dataSet = new DataSet(); dataSet.ReadXml("input

相信XML大家都比較熟知吧。下面是我從網絡上摘取的概念性的東西,大家可以看一下。在此就不多說了。更多的說一些基本用法。

java項目中,xml文件一般都是用來存儲一些配置信息 一般的編程, 多數用來存儲配置信息 . 拿JDBC來說,可以把數據庫連接字符串寫到xml,如果要修改數據源,只需要改xml就可以了,沒必要再去重新編譯java文件,而且,這些配置信息放在一起,別的人來讀你寫

XML概述:

XML和HTML語法區別:HTML的標記不是所有的都需要成對出現,XML則要求所有的標記必須成對出現;HTML標記不區分大小寫,XML則大小敏感,即區分大小寫。讀寫: XML讀寫我所熟悉的有兩種方式,一種是通過

可擴展標記語言 (Extensible Markup Language, XML) ,用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 XML是標準通用標記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。

雖然大部分的數據分層形式也可以使用類似JSON的格式,不過YAML并不建議這樣使用,除非這樣編寫能讓文件可讀性增加,更重要的是,YAML的許多擴展在JSON是找不到的,如:*進階資料形態*、*關系錨點*、*字串

格式特性:

XML與Access,Oracle和SQL Server等數據庫不同,數據庫提供了更強有力的數據存儲和分析能力,例如:數據索引、排序、查找、相關一致性等,XML僅僅是存儲數據。事實上XML與其他數據表現形式最大的不同是:它極其簡單,這是一個看上去有點瑣細的優點,但正是這點使XML與眾不同。

來自YAML官方網站(http://www.yaml.org/)的定義:YAML是一種直觀的能夠被電腦識別的的數據數據序列化格式,他并且容易被人類閱讀,容易和腳本語言交互的。換種說法,YAML是一種很簡單的類似于XML的數據描述

XML與HTML的設計區別是:XML被設計為傳輸和存儲數據,其焦點是數據的內容。而HTML被設計用來顯示數據,其焦點是數據的外觀。HTML旨在顯示信息,而 XML旨在傳輸信息。

自帶的JSON,XML,YAML,AMF和PLIST(XML和二進制)格式的支持 可插拔的身份驗證方案 OAuth的2服務器 可插拔的過濾器能夠有效地管理API使用 API速率限制過濾器 路由 網址映射方法 網址部分方法參數映射

XML和HTML語法區別:HTML的標記不是所有的都需要成對出現,XML則要求所有的標記必須成對出現;HTML標記不區分大小寫,XML則大小敏感,即區分大小寫。

方法一、通過用XML,JSON或YAML編寫的配置文件。方法二:以編程方式,通過創建一個ConfigurationFactory和配置實現。方法三、以編程方式,通過調用Configuration界面中公開的API將組件添加到默認配置。

讀寫:

XML讀寫我所熟悉的有兩種方式,一種是通過JavaScript來獲取XML值,一個是用PHP來讀取。XML的編寫大家可以參考著手冊,XML格式比較自由,可以自定義標簽,但有一個原則就是要直觀。下面直接列舉出示例供大家測試,如有問題大家可以交流。

在-hosts:cluster的host:后面如果有一個空格就會指向下一行,如果沒有空格就是指向別的行,代碼完全重寫手打過幾遍或者直接復制例子代碼都會報錯。我看了一下yaml語法,感覺remote_user:root前面

note.xml

掌握數據結構和算法、網絡技術、至少一種通用數據交換技術(XML/JSON/YAML等等)、數據庫編程等等;根據工作需要還要掌握圖形圖像知識(游戲開發)、網絡接口知識(網站API開發)等。職業程序員都比較苦。

復制代碼 代碼如下:

ssh命令同樣要使用一個庫。簡單的辦法是通過一個封裝popen這樣功能 的pexpect 我以前用過paramiko。另外似乎還有一個SSH庫,最近流行的。不記得名子了。也有人用ssh4py 這個庫。yaml這個格式比較人性化,

<?xml version="1.0" encoding="ISO-8859-1"?>

其實就可以認為是一種新的數據格式,類似xml,json那般。可以用于:配置文件,日志文件,內部消息傳遞,跨語方數據共享,對象持久等。

<note>

  <from>John</from>

  <to>George</to>

  <message>Don't forget the meeting!</message>

</note>

xml_test.html

JavaScript

復制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmls="http://www.w3.org/1999/xhtml">

<body>

  <p>

    <b>To:</b> <span id="to"></span><br />

    <b>From:</b> <span id="from"></span><br />

    <b>Message:</b> <span id="message"></span>

  </p>

<script type="text/javascript">

if (window.XMLHttpRequest)

  {// code for IE7+, Firefox, Chrome, Opera, Safari

  xmlhttp=new XMLHttpRequest();

  }

else

  {// code for IE6, IE5

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

  }

  xmlhttp.open("GET","note.xml",false);

  xmlhttp.send();

  xmlDoc=xmlhttp.responseXML;

  document.getElementById("to").innerHTML=

  xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

  document.getElementById("from").innerHTML=

  xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

  document.getElementById("message").innerHTML=

  xmlDoc.getElementsByTagName("message")[0].childNodes[0].nodeValue;

</script>

</body>

</html>

xml_test.php

復制代碼 代碼如下:

<?php

//創建DOM對象

$xml = new DOMDocument();

//讀取XML文件

$xml = simplexml_load_file('note.xml');

//輸出XML文件中from屬性,多個相同屬性也就是數組的形式,可以用下標來取值

echo $xml->from;

?>

 

YAML簡介:

YAML 作為一種比 XML 更為簡單易讀的序列化語言,正越來越多地被用于應用及配置文件的開發中。本文將簡單介紹 YAML 的現狀,YAML 與 XML 相比的優劣勢,并通過實際的例子給出 YAML 的典型應用場景及其使用方法(涵蓋 c/c++、ruby、PHP等)。

優勢:

YAML的可讀性好。

YAML和腳本語言的交互性好。

YAML使用實現語言的數據類型。

YAML有一個一致的信息模型。

YAML易于實現。

上面5條也就是XML不足的地方。同時,YAML也有XML的下列優點:

YAML可以基于流來處理;

YAML表達能力強,擴展性好。

總之,YAML試圖用一種比XML更敏捷的方式,來完成XML所完成的任務。

更多的內容及規范參見http://www.yaml.org。

語法:

Structure通過空格來展示。Sequence里的項用”-”來代表,Map里的鍵值對用”:”分隔.

這幾乎就是所有的語法了.

比如……

一般YAML文件擴展名為.yaml。比如:john.yaml

 復制代碼 代碼如下:

name: John Smith

age: 37

spouse:

name: Jane Smith

age: 25

children:

- name: Jimmy Smith

age: 15

- name: Jenny Smith

age 12

John今年37歲,有一個幸福的四口之家。兩個孩子Jimmy 和Jenny活潑可愛。妻子Jane年輕美貌。

如果深入研究的話還可能發現一些社會問題^_^。

可見YAML的可讀性是不錯。

讀寫:

PHP對于YAML的讀寫,我推薦使用Spyc類讀寫YAML文件。

Spyc類文件下載地址:

https://github.com/mustangostang/spyc/

Spyc只有2個類方法可供使用,一個是讀取YAML文件,一個是生成YAML文件格式。下面從這個兩種方法介紹下。

 復制代碼 代碼如下:

include('spyc.php');

// 讀取YAML文件,生成數組

$yaml = Spyc::YAMLLoad('spyc.yaml');

// 將數組轉換成YAML文件

$array['name']  = 'andy';

$array['site'] = '21andy.com';

$yaml = Spyc::YAMLDump($array);

php.ini讀取ini的解析方式那種配置沒法支持多維數組,So,我對yaml生成多維數組很感興趣,主要想做一下配置文件,如下:

復制代碼 代碼如下:

  - { row: 0, col: 0, func: {tx: [0, 1]} }

 

轉為php多維數組如下:

test.yaml(這個例子是我的DB配置文件,強烈推薦使用!)

復制代碼 代碼如下:

DB:

  default:

    dsn: 'mysql:dbname=test;host=127.0.0.1'

    user: 'root'

    pass: '111'

  session:

    dsn: 'mysql:dbname=test;host=127.0.0.1'

    user: 'root'

    pass: '111'

 

test.php

復制代碼 代碼如下:

<?php

include('spyc.php');

//讀取YAML文件,生成數組

$yaml = Spyc::YAMLLoad('test.yaml');

echo "<pre>";

print_r($yaml);

echo "</pre>";

PHP code

Array

(

    [DB] => Array

        (

            [default] => Array

                (

                    [dsn] => mysql:dbname=test;host=127.0.0.1

                    [user] => root

                    [pass] => 111

                )

            [session] => Array

                (

                    [dsn] => mysql:dbname=test;host=127.0.0.1

                    [user] => root

                    [pass] => 111

                )

        )

)

PHP生成YAML文件示例:

<?php

include('spyc.php');

//將數組轉換成YAML文件格式

$array['name']  = 'PHP程序猿的筆記';

$array['site'] = 'www.songchaoke.cn';

$yaml = Spyc::YAMLDump($array);

//將轉換的YAML寫入到文件中

$f = fopen('test2.yaml',"w+");

fwrite($f,$yaml);

fclose($f);

[/code]

XML概述:可擴展標記語言(Extensible Markup Language,XML),用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。XML是標準通用標記語言(SGML)的子集,非常適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。格式特性:XML與Access,Oracle和SQL Server等數據庫不同,數據庫提供了更強有力的數據存儲和分析能力,例如:數據索引、排序、查找、相關一致性等,XML僅僅是存儲數據。事實上XML與其他數據表現形式最大的不同是:它極其簡單,這是一個看上去有點瑣細的優點,但正是這點使XML與眾不同。XML與HTML的設計區別是:XML被設計為傳輸和存儲數據,其焦點是數據的內容。而HTML被設計用來顯示數據,其焦點是數據的外觀。HTML旨在顯示信息,而 XML旨在傳輸信息。XML和HTML語法區別:HTML的標記不是所有的都需要成對出現,XML則要求所有的標記必須成對出現;HTML標記不區分大小寫,XML則大小敏感,即區分大小寫。讀寫:XML讀寫我所熟悉的有兩種方式,一種是通過JavaScript來獲取XML值,一個是用PHP來讀取。XML的編寫大家可以參考著手冊,XML格式比較自由,可以自定義標簽,但有一個原則就是要直觀。下面直接列舉出示例供大家測試,如有問題大家可以交流內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • php操作xml
  • 在java中使用dom4j解析xml(示例代碼)
  • php 修改、增加xml結點屬性的實現代碼
  • js跨瀏覽器實現將字符串轉化為xml對象的方法
  • xml輕松學習手冊(4)xml語法
  • html中的xml數據島記錄編輯與添加
  • xml中的空格之完全解說
  • 了解web頁面工具語言xml(六)展望
  • 用xml和xsl來生成動態頁面
  • web設計中如何使用xml數據
  • xsl簡明教程(4)在服務器端的實現
  • 使用xml實現bbs(主題列表篇)
  • 用xml和sql 2000來管理存儲過程調用
  • xml輕松學習手冊(四):xml語法
  • XML和YAML的區別與使用方法
  • 如何產生xml或yaml的圖像列表
  • 關于rss和xml是什么關系?
  • xml現在和將來的主要運用?
  • 如何用ReadXml和WriteXml將xml的數據讀取到DataSet...
  • xml在java項目中起到的作用具體是什么?
  • XML和YAML的區別與使用方法
  • 如何產生xml或yaml的圖像列表
  • YAML 什么意思?有什么含義?
  • Restler 怎么設置post
  • 如何部署和搭建測試log4j 2
  • ansible的yaml文件,循環引用
  • 計算機編程難學嗎?
  • Python如何調用yaml文件中的參數來執行ssh命令
  • yaml中如何輸入#作為正常字符
  • 數據驅動中,yaml是什么?如何編寫?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全javascriptasp.netphp編程ajax相關正則表達式asp編程jsp編程編程10000問css/htmlflex腳本加解密web2.0xml/rss網頁編輯器相關技巧安全相關網頁播放器其它綜合dart首頁xml/rssphp操作xml在java中使用dom4j解析xml(示例代碼)php 修改、增加xml結點屬性的實現代碼js跨瀏覽器實現將字符串轉化為xml對象的方法xml輕松學習手冊(4)xml語法html中的xml數據島記錄編輯與添加xml中的空格之完全解說了解web頁面工具語言xml(六)展望用xml和xsl來生成動態頁面web設計中如何使用xml數據xsl簡明教程(4)在服務器端的實現使用xml實現bbs(主題列表篇)用xml和sql 2000來管理存儲過程調用xml輕松學習手冊(四):xml語法sxna rss blog 聚合器程序asp+rss閱讀器制作xml文件的結構解讀xpath語法格式總結xml和yaml的使用方法javascript生成xml怎樣快速從一個xml文件中查找信息把html表單提交的數據轉化成xml文使用正則表達式進行xml數據驗證包含中文字符的url編碼問題讓asp與xml交互基于xml的桌面應用xml與html的結合(下)xml輕松學習手冊(2)xml概念xsl簡明教程(7)xsl 的控制語句對xml數據使用xmlconvertxml入門的常見問題(四)利用xmlserializer將對象串行化到xmluddi faqsxml輕松學習手冊(六):xml相關資源
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果