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.zgxue.com防采集请勿采集本网。

最近处理一些配置文件,碰到了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.zgxue.com请勿采集。


  • 本文相关:
  • 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.zgxue.com All Rights Reserved