一、什么是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. 一张图教你搞定Mac App Store 应用安装包存储路径

    还在为找不到App Store 更新应用的安装文件发愁吗?是否有过多个人同时需要更新Xcode,都自己下载一次的痛苦经历? 大家都知道通过苹果服务器下载东西,确实难耐!AppStore 甚至都经常提示 ...

  2. web.xml 的加载过程

    初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个Serv ...

  3. 35. Binary Tree Level Order Traversal && Binary Tree Level Order Traversal II

    Binary Tree Level Order Traversal OJ: https://oj.leetcode.com/problems/binary-tree-level-order-trave ...

  4. 记一个eclipse 错误 Undefined variable from import: randrange

    我自己定义了一个random.py   和pev的包含路径一样的 解决办法是: 出现这种问题,可以import 这个模块,print 这个模块

  5. POS管理系统之新增设备入库

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  6. yum install mysql

    rpm -qa|grep -i mysqlmysql-libs-5.1.52-1.1.alios6.1.x86_64mysql-5.1.52-1.1.alios6.1.x86_64mysql-deve ...

  7. HTML中的下拉列表 select

    HTML中的下拉列表: <select> <option value ="1">Volvo</option> <option value ...

  8. Oracle 查询系统所有用户信息

    1.查看所有用户:select * from dba_users;   select * from all_users;   select * from user_users; 2.查看用户或角色系统 ...

  9. php 连接mongodb 增查改删操作

    查询 <?php $m=new MongoClient('mongodb://admin:admin@localhost:27017/admin'); $db=$m->hndb; $cc= ...

  10. Visual Studio 2013新建工程导入现有代码文件夹并且保持目录结构

    本文提供了一个在Windows环境下使用Visual Studio 2013编辑现有源代码并且保持目录结构的方法.本文使用VS2013中文社区版做示例(本版本为免费版,可在VS官网下载),其他版本的V ...