搜尋
首頁後端開發XML/RSS教程XML和YAML的使用方法

XML和YAML的使用方法

Dec 24, 2016 am 11:03 AM

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

相信XML大家都比較熟悉吧。以下是我從網路上摘取的概念性的東西,大家可以看一下。在此就不多說了。更多的說一些基本用法。
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格式比較自由,可以自訂標籤,但有一個原則就是要直觀。以下直接列舉範例供大家測試,如有問題大家可以交流。

note.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
  <from>John</from>
  <to>George</to>
  <message>Don&#39;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(&#39;note.xml&#39;); 
//输出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(&#39;spyc.php&#39;);

// 读取YAML文件,生成数组
$yaml = Spyc::YAMLLoad(&#39;spyc.yaml&#39;);

// 将数组转换成YAML文件
$array[&#39;name&#39;]  = &#39;andy&#39;;
$array[&#39;site&#39;] = &#39;21andy.com&#39;;
$yaml = Spyc::YAMLDump($array);

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

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

轉為php多維數組如下:
test.yaml(這個例子是我的DB配置文件,強烈建議使用!)

DB:
  default:
    dsn: &#39;mysql:dbname=test;host=127.0.0.1&#39;
    user: &#39;root&#39;
    pass: &#39;111&#39;
  session:
    dsn: &#39;mysql:dbname=test;host=127.0.0.1&#39;
    user: &#39;root&#39;
    pass: &#39;111&#39;

test.php

<?php
include(&#39;spyc.php&#39;);
//读取YAML文件,生成数组
$yaml = Spyc::YAMLLoad(&#39;test.yaml&#39;);
echo "<pre class="brush:php;toolbar:false">";
print_r($yaml);
echo "
"; 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文件範例:
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和YAML的使用方法相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
RSS和XML:了解Web內容的動態二重奏RSS和XML:了解Web內容的動態二重奏Apr 19, 2025 am 12:03 AM

RSS和XML是用於網絡內容管理的工具。 RSS用於發布和訂閱內容,XML用於存儲和傳輸數據。它們的工作原理包括內容髮布、訂閱和更新推送。使用示例包括RSS發布博客文章和XML存儲書籍信息。

RSS文檔:Web聯合組織的基礎RSS文檔:Web聯合組織的基礎Apr 18, 2025 am 12:04 AM

RSS文檔是基於XML的結構化文件,用於發布和訂閱頻繁更新的內容。它的主要作用包括:1)自動化內容更新,2)內容聚合,3)提高瀏覽效率。通過RSSfeed,用戶可以訂閱並及時獲取來自不同來源的最新信息。

解碼RSS:內容提要的XML結構解碼RSS:內容提要的XML結構Apr 17, 2025 am 12:09 AM

RSS的XML結構包括:1.XML聲明和RSS版本,2.頻道(Channel),3.條目(Item)。這些部分構成了RSS文件的基礎,允許用戶通過解析XML數據來獲取和處理內容信息。

如何解析和利用基於XML的RSS提要如何解析和利用基於XML的RSS提要Apr 16, 2025 am 12:05 AM

RSSFEEDSUSEXMLTOSYNDICATECONTENT; PARSINGTHEMINVOLVESLOADINGINGINGINGINSSTRUCTURE,andExtractingData.ApplicationsIncludeBuildBuildingNewSagGregatorSaterNewSagGregatorSator andTrackingPodcastepodcastepisodes。

RSS文檔:他們如何提供您喜歡的內容RSS文檔:他們如何提供您喜歡的內容Apr 15, 2025 am 12:01 AM

RSS文檔的工作原理是通過XML文件發佈內容更新,用戶通過RSS閱讀器訂閱並接收通知。 1.內容髮布者創建並更新RSS文檔。 2.RSS閱讀器定期訪問並解析XML文件。 3.用戶瀏覽和閱讀更新內容。使用示例:訂閱TechCrunch的RSS源,只需複制鏈接到RSS閱讀器中即可。

用XML建造供稿:RSS的動手指南用XML建造供稿:RSS的動手指南Apr 14, 2025 am 12:17 AM

使用XML構建RSSfeed的步驟如下:1.創建根元素並設置版本;2.添加channel元素及其基本信息;3.添加條目(item)元素,包括標題、鏈接和描述;4.轉換XML結構為字符串並輸出。通過這些步驟,你可以從零開始創建一個有效的RSSfeed,並通過添加額外的元素如發布日期和作者信息來增強其功能。

創建RSS文檔:逐步教程創建RSS文檔:逐步教程Apr 13, 2025 am 12:10 AM

創建RSS文檔的步驟如下:1.使用XML格式編寫,根元素為,包含元素。 2.在內添加、、等元素描述頻道信息。 3.添加元素,每個代表一個內容條目,包含、、、等。 4.可選地添加和元素,豐富內容。 5.確保XML格式正確,使用在線工具驗證,優化性能並保持內容更新。

XML在RSS中的作用:聯合內容的基礎XML在RSS中的作用:聯合內容的基礎Apr 12, 2025 am 12:17 AM

XML在RSS中的核心作用是提供一種標準化和靈活的數據格式。 1.XML的結構和標記語言特性使其適合數據交換和存儲。 2.RSS利用XML創建標準化格式,方便內容共享。 3.XML在RSS中的應用包括定義feed內容的元素,如標題和發布日期。 4.優勢包括標準化和可擴展性,挑戰包括文件冗長和嚴格語法要求。 5.最佳實踐包括驗證XML有效性、保持簡潔、使用CDATA和定期更新。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具