一、什么是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. 113、ScrollView滑动到了最底部

    ScrollView使用 http://www.cnblogs.com/androidsj/archive/2012/03/04/2379387.html 滚动到顶部判断:getScrollY() = ...

  2. No.2__C#

    几经波折——多事之秋的第二周 这周的事情还有点多, 应该已经是上周了确切的说.总的来说,上周的数据结构的学习进行的很顺利.最让自己惊喜的是,居然很快就派上了用场,这也坚定了我学习的信念,极大地鼓舞了我 ...

  3. 重置SQL Server连接池

    EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for adva ...

  4. strong & weak

    Here is a quick summary: A strong reference will keep the object it points to from being deallocated ...

  5. tinyxml学习5

    读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好. TinyXML是一个开源的解 ...

  6. 解决GBK字符转UTF-8乱码问题

    通过以下方法将GBK字符转成UTF-8编码格式的byte[]数组 package test; import java.io.UnsupportedEncodingException; public c ...

  7. swift 当协议遇见了泛型

    由于泛型比较简单,并没有单独拿出来介绍!我们在定义函数的时候,有时候只是由于参数或者返回值类型不同,而具体的实现过程是一模一样的,这个时候我们就可以定义泛型函数而使可以传入不同的参数类型: func ...

  8. JS动态获取数据

    JS访问数据,有实时获取数据的时候,请加上时间戳 如:'&stampflag=' + Math.round(new Date().getTime() / 1000); 因为有的浏览器(如IE9 ...

  9. Android IOS WebRTC 音视频开发总结(七六)-- 探讨直播低延迟低流量的粉丝连麦技术

    本文主要探讨基于WebRTC的P2P直播粉丝连麦技术 (作者:郝飞,亲加云CTO,编辑:dora),最早发表在[这里] 支持原创,转载必须注明出处,欢迎关注微信公众号blacker(微信ID:blac ...

  10. java 调用 r, Can't find dependent libraries

    rJava是一个R语言和Java语言的通信接口,通过底层JNI实现调用,允许在R中直接调用Java的对象和方法. 步骤: 1.本地系统: Win7 64bit 企业版, jdk1.8.0_45,R3. ...