XML和YAML的使用方法
最近处理一些配置文件,碰到了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'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 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中文网!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Kelajuan XML mudah alih ke PDF bergantung kepada faktor -faktor berikut: kerumitan struktur XML. Kaedah Penukaran Konfigurasi Perkakasan Mudah Alih (Perpustakaan, Algoritma) Kaedah Pengoptimuman Kualiti Kod (Pilih perpustakaan yang cekap, mengoptimumkan algoritma, data cache, dan menggunakan pelbagai threading). Secara keseluruhannya, tidak ada jawapan mutlak dan ia perlu dioptimumkan mengikut keadaan tertentu.

Tidak mustahil untuk menyelesaikan penukaran XML ke PDF secara langsung di telefon anda dengan satu aplikasi. Ia perlu menggunakan perkhidmatan awan, yang boleh dicapai melalui dua langkah: 1. Tukar XML ke PDF di awan, 2. Akses atau muat turun fail PDF yang ditukar pada telefon bimbit.

Ia tidak mudah untuk menukar XML ke PDF secara langsung pada telefon anda, tetapi ia boleh dicapai dengan bantuan perkhidmatan awan. Adalah disyorkan untuk menggunakan aplikasi mudah alih ringan untuk memuat naik fail XML dan menerima PDF yang dihasilkan, dan menukarnya dengan API awan. API awan menggunakan perkhidmatan pengkomputeran tanpa pelayan, dan memilih platform yang betul adalah penting. Kerumitan, pengendalian kesilapan, keselamatan, dan strategi pengoptimuman perlu dipertimbangkan ketika mengendalikan penjanaan XML dan penjanaan PDF. Seluruh proses memerlukan aplikasi front-end dan API back-end untuk bekerjasama, dan ia memerlukan pemahaman tentang pelbagai teknologi.

Alat pemformatan XML boleh menaip kod mengikut peraturan untuk meningkatkan kebolehbacaan dan pemahaman. Apabila memilih alat, perhatikan keupayaan penyesuaian, pengendalian keadaan khas, prestasi dan kemudahan penggunaan. Jenis alat yang biasa digunakan termasuk alat dalam talian, pemalam IDE, dan alat baris arahan.

Permohonan yang menukarkan XML terus ke PDF tidak dapat dijumpai kerana mereka adalah dua format yang berbeza. XML digunakan untuk menyimpan data, manakala PDF digunakan untuk memaparkan dokumen. Untuk melengkapkan transformasi, anda boleh menggunakan bahasa pengaturcaraan dan perpustakaan seperti Python dan ReportLab untuk menghuraikan data XML dan menghasilkan dokumen PDF.

Untuk membuka fail web.xml, anda boleh menggunakan kaedah berikut: Gunakan editor teks (seperti Notepad atau TextEdit) untuk mengedit arahan menggunakan persekitaran pembangunan bersepadu (seperti Eclipse atau NetBeans) (Windows: Notepad Web.xml; Mac/Linux: Open -A -A TextEdit Web.xml)

Gunakan kebanyakan editor teks untuk membuka fail XML; Jika anda memerlukan paparan pokok yang lebih intuitif, anda boleh menggunakan editor XML, seperti editor XML oksigen atau XMLSPY; Jika anda memproses data XML dalam program, anda perlu menggunakan bahasa pengaturcaraan (seperti Python) dan perpustakaan XML (seperti XML.Etree.ElementTree) untuk menghuraikan.

Terdapat dua cara untuk mengeksport XML ke PDF: menggunakan XSLT dan menggunakan perpustakaan mengikat data XML. XSLT: Buat lembaran gaya XSLT, tentukan format PDF untuk menukar data XML menggunakan pemproses XSLT. Perpustakaan mengikat data XML: Import Perpustakaan Pengikat Data XML Buat dokumen PDF Memuatkan Fail PDF Eksport Data XML. Kaedah mana yang lebih baik untuk fail PDF bergantung kepada keperluan. XSLT menyediakan fleksibiliti, manakala perpustakaan mengikat data mudah dilaksanakan; Untuk penukaran mudah, perpustakaan mengikat data lebih baik, dan untuk penukaran yang kompleks, XSLT lebih sesuai.
