一、什么是XML

XML全称:Extensible Markup Language

中文名:可扩展标记语言

用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型,允许用户对自己的标记语言进行定义的源语言。

用于传输数据与存储数据

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- 这是xml-->
  3. <libray>
  4. <book id="1">
  5. <title><三国演义></title>
  6. <author>罗贯中</author>
  7. <price>82</price>
  8. </book>
  9. <book id="2">
  10. <title><水浒传></title>
  11. <author>施耐庵</author>
  12. <price>78</price>
  13. </book>
  14. </libray>

二、XML和html、json的对比

xml与html对比:

超级文本标记语言 HyperText Markup Language

超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。

  1. <html>
  2. <head>
  3. <title>html文件</title>
  4. </head>
  5. <body>
  6. <table>
  7. <tr>
  8. <th>姓名</th>
  9. <th>年龄</th>
  10. </tr>
  11. <tr>
  12. <td>张玲</td>
  13. <td>20</td>
  14. </tr>
  15. <tr>
  16. <td>李冰</td>
  17. <td>18</td>
  18. </tr>
  19. </table>
  20. </body>
  21. </html>

html不一定成对出现,XML则要求所有的标记必须成对出现;

  <br/>  <img />  <hr>

HTML标记不区分大小写,XML区分大小写。



xml与json对比:



  1. [{"id":1,"title":"\u4e09\u56fd\u6f14\u4e49","author":"\u7f57\u8d2f\u4e2d","price":80},{"id":2,"title":"\u6c34\u6d52\u4f20","author":"\u65bd\u8010\u5eb5","price":78}]

它和json都是一种数据交换格式。

JSON(JavaScript Object Notation)一种轻量级的数据交换格式。数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取。



XML文件庞大,文件格式复杂,传输占带宽。

可以定义更复杂的数据结构,可读性比json数据好。

可读性强

三、XML应用场景

XML 是各种应用程序之间进行数据传输的最常用的工具。

应用场景:

1)充当程序间交互的中间件(通讯标准)

接口(Java)XMLPHP

2)配置文件

3)小型数据库

php+MySQL
金山词霸

php+xml 金山词霸

四、XML格式

需要先使用文档声明来声明XML文档

最简单的语法:

<?xml version=“1.0” encoding=“utf-8”?>

version 版本为1.0 (代表当前xml文档的版本)

encoding 编码格式 (编码格式utf-8、big5、gb2312)

standalone 是否独立(是否依靠dtd文件)  默认yes

作用:告诉浏览器在解释时所采用的版本与格式等信息

浏览器中输出时指定类型:

<meta name="content-type" content="text/xml">

五、php操作XML

函数参考 --  XML 操作 --SimpleXML

SimpleXML 扩展提供了一个非常简单和易于使用的工具集,能将 XML 转换成一个带有一般属性选择器和数组迭代器的对象。

5.1读取xml:

simplexml_load_file()

attributes ()  获取属性

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

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- 这是xml-->
  3. <libray>
  4. <book id="1" ccc="123">
  5. <title><三国演义></title>
  6. <author>罗贯中</author>
  7. <price>82</price>
  8. </book>
  9. <book id="2" ccc="456">
  10. <title><水浒传></title>
  11. <author>施耐庵</author>
  12. <price>78</price>
  13. </book>
  14. </libray>
  1. header('Content-type:text/html;charset=utf8');
  2. if ( file_exists ( 'demo01.xml' )) {
  3. $xml  =  simplexml_load_file ( 'demo01.xml' );
  4. print_r ( $xml );
  5. echo "<table>";
  6. echo "<tr><td>ID</td><td>书名</td><td>作者</td><td>单价</td></tr>";
  7. foreach($xml->book as $v){
  8. echo "<tr><td>" .$v->attributes()->ccc . "</td>";
  9. echo "<td>" .$v->title . "</td>";
  10. echo "<td>" .$v->author . "</td>";
  11. echo "<td>" .$v->price . "</td>";
  12. echo "</tr>";
  13. }
  14. echo "</table>";
  15. } else {
  16. exit( 'Failed to open test.xml.' );
  17. }

5.2生成xml:

//在XML文档中的所有文本都会被解析器解析,只有在CDATA部件之内的文本会被解析器忽略。比如文本内容中使用“<”这样的特殊字符时,XML使用解析错误。要对"<"进行转义(&lt;)才能正常解析。

$xml  = new  SimpleXMLElement ( $string );

header('content-type:text/xml;charset=utf-8');

  1. header('content-type:text/xml;charset=utf-8');
  2. $a1= array("id"=>1,"title"=>"<<三国演义>>","author"=>"罗贯中","price"=>80);
  3. $a2= array("id"=>2,"title"=>"<<水浒传>>","author"=>"施耐庵","price"=>78);
  4. $arr = array($a1,$a2);
  5. //echo json_encode($arr);exit;
  6. $str = "<?xml version='1.0' encoding='utf-8'?><libray>";
  7. foreach($arr as $v){
  8. $str .="
  9. <book id='{$v['id']}'>
  10. <title><span style="color:#FF0000;"><![CDATA[" .$v['title']. "]]></span></title>
  11. <author>{$v['author']}</author>
  12. <price>{$v['price']}</price>
  13. </book>";
  14. }
  15. $str .="</libray>";
  16. echo $str;

XMl入门介绍及php操作XML的更多相关文章

  1. XML入门介绍(什么是XML及XML格式)

    什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language). XML 是一种很像HTML的标记语言. XML 的设计宗旨是传输数据,而不是显示数据. XML 标 ...

  2. XML入门介绍

    目录 XML 简介 xml 语法 文档声明 (1)创建一个 xml 文件 (2)图书有 id 性 属性 一 表示唯一 标识,书名,有作者,价格的信息 xml 注释 元素(标签) 1)什么是 xml 元 ...

  3. XML学习笔记(2)--dom4j操作XML

    1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...

  4. xml入门简介--两天学会xml

    前言 在很久以前,笔者曾见到过1000+页的xml书,里面还有n多的概念,XSL,Xquery,让人头痛.无奈最近需要用到,所以在w3c恶补了一下.以下大致整理了一下相关概念,但是对XSL等派生语言没 ...

  5. WebService(2)-XML系列之用Stax操作Xml

    源代码下载:链接: http://pan.baidu.com/s/1ntL1a7R password: rwp1 本文主要讲述:利用Stax处理xml文档 一.读取xml 1.基于光标的查找 核心:X ...

  6. 简单的git入门介绍及常用操作

    集中式版本控制系统采用中央服务器上存储的所有文件和实现团队协作.但是CVCS主要缺点是中央服务器的单点故障,即故障.不幸的是,如果中央服务器宕机一小时,然后在该时段没有人可以合作.即使在最坏的情况下, ...

  7. php操作xml详解

    XML是一种流行的半结构化文件格式,以一种类似数据库的格式存储数据.在实际应用中,一些简单的.安全性较低的数据往往使用 XML文件的格式进行存储.这样做的好处一方面可以通过减少与数据库的交互性操作提高 ...

  8. 【转】【Flex】#010 操作XML文件(E4X)

    该教程转载来自于:http://blog.chinaunix.net/uid-14767524-id-2785506.html    [看到这边文章的位置,具体原作者未知] 经过一些排版的修改,其他内 ...

  9. flex 操作xml 实现增删改查 .

    一 在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为“元素”    节点:把XML元素与文本结合起来统称为节点    根节点:位于整 ...

随机推荐

  1. rh6安装oracle11g+ASM

    安装步骤我这里略过,主要说下安装过程中遇到到问题或重要步骤: 1.UDEV绑定: for i in b c d e ;doecho "KERNEL==\"sd*\", B ...

  2. 关于SoCFPGA 编译问答

    1.在Qsys里面添加了一个新的组件(不是hps里面的东西),挂在Avalon总线上,如添加了一个新ADC组件,是否需要重新编译dtb. 答:  不需要. 2.修改了相关Qsys里面的东西,是否也需要 ...

  3. 48. Remove Duplicates from Sorted List && Remove Duplicates from Sorted List II

    Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such that each ...

  4. 10G R2 参数文件相关

    CLUSTER_DATABASE Property Description Parameter type Boolean Default value false Modifiable No Range ...

  5. IPTV视频基本概念

      480x320, 640x480 标清 1024x720p 高清 1920x1080i (隔行扫描) 也属于高清 1920x1080p 全高清 3840x2160,7680x4320 超(高)清 ...

  6. FMDB实用攻略

    一.首先创建模型类 User.h #import <Foundation/Foundation.h> @interface User : NSObject @property(nonato ...

  7. wget cooikes 下载

    2.下来用wget带cookie的命令下载,命令如下: wget -c –load-cookies=cookies.txt  ”下载地址” -O “文件名” &       [文件名处自己命名 ...

  8. jsp request 对象详解

    转自:http://www.cnblogs.com/qqnnhhbb/archive/2007/10/16/926234.html 1.request对象 客户端的请求信息被封装在request对象中 ...

  9. NHibernate系列文章十九:NHibernate关系之多对多关系(附程序下载)

    摘要 NHibernate的多对多关系映射由many-to-many定义. 从这里下载本文的代码NHibernate Demo 1.修改数据库 添加Product表 添加ProductOrder表 数 ...

  10. A Beginner's Guide To Understanding Convolutional Neural Networks(转)

    A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...