一、什么是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. java 线程数据同步

    java 线程数据同步 由买票实例 //java线程实例 //线程数据同步 //卖票问题 //避免重复卖票 //线程 class xc1 implements Runnable{ //定义为静态,可以 ...

  2. Oracle Solaris 11.2 Beta Firefox 17.0.6 添加 flashplayer 插件

    1.复制libflashplayer.so插件到路径:~/.mozilla/plugins/下.2.打开Firefox,在地址栏输入about:config.回车:在过滤器那一栏输入 plugin.e ...

  3. IIS7 rename application or site

    rename site 比较容易,在IIS里面就可以直接 rename,也可以用 cmd 的方式 1. 打开 cmd 2. cd C:\Windows\System32\inetsrv 3. appc ...

  4. React 附件动画API ReactCSSTransitionGroup

    React为动画提供了一个附加组件ReactTransitionGroup,这个附加组件是动画的底层API,并且还提供了一个附件组件ReactCSSTransitionGroup,ReactCSSTr ...

  5. struts2 中 Actionsupport 的作用

    struts2 中 Actionsupport 的作用 Action 跟 Actionsupport 的区别     当我们在写action的时候,可以实现Action接口,也可以继承Actionsu ...

  6. 安装和使用memcached

    引用:http://www.czhphp.com/archives/252 如何将 memcached 融入到您的环境中? 在开始安装和使用 using memcached 之前,我们需要了解如何将 ...

  7. textContent 与innerText

    转自下面这位大神: http://zhangyaochun.iteye.com/blog/1391370 其实关于这textContent与innerText有很多碎碎的东西,不过个人觉得还是一个不错 ...

  8. js获取浏览器窗口可视区域大小

    获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法: 一.对于IE9+.Chrome.Firefox.Opera 以及 Safari: •  window.innerHeight - 浏 ...

  9. Python自动化 【第一篇】:Python简介和入门

    Python简介: 一.什么是python Python是一门动态解释性的强类型定义语言. pythonde 特点:“优雅”.“明确”.“简单”. 二.Python由来 python的创始人为吉多·范 ...

  10. python之fabric(二):执行模式(转)

    执行模式 执行模式可以让你在多个主机上执行多个任务. 执行策略: 默认fabric是单个有序地执行方法,其行为如下: 1. 创建一系列任务,通过fab任务执行要执行的任务: 2. 根据主机列表定义,去 ...