一、什么是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. Angular(1)

    1.设计原则 1.YAGNI  不要把未来需求引入当前工程   2.KISS  keep it simple and stupid  语义化标记 合理注释 符合规定的命名 3.DRY(don't re ...

  2. c#深拷贝

    /// <summary> /// 对象拷贝 /// </summary> /// <param name="obj">被复制对象</pa ...

  3. 一行代码解释.net事件与委托

    button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); }; delegat ...

  4. 继承自NSObject的不常用又很有用的函数(2)

    函数调用 Objective-C是一门动态语言,一个函数是由一个selector(SEL),和一个implement(IML)组成的.Selector相当于门牌号,而Implement才是真正的住户( ...

  5. GLSL语言基础

    from http://www.kankanews.com/ICkengine/archives/120870.shtml 变量 GLSL的变量命名方式与C语言类似.变量的名称可以使用字母,数字以及下 ...

  6. Linux 账户信息显示和实现账户安全

    一.账户信息显示 1.groups命令 使用groups命令可以显示指定用户账户的组群成员身份. [root@redhat2 ~]# groups --help Usage: groups [OPTI ...

  7. 【转】操作权限不够?教你开启Win7管理员帐户

    在Win7中进行一些设置,或修改某些文件时,经常会弹出当前帐户没有操作权限的提示,即使已经是管理员账户也不行.事实上,出于安全方面的考虑,默认情况下Win7系统的系统管理员Administrator账 ...

  8. php中好用的时间函数

    //查询数据30天的数据$y=date("Y",time());$m=date("m",time());$d=date("d",time() ...

  9. NHibernate系列文章十三:NHibernate批量更新

    摘要 对于批量插入和批量修改数据,通过设置NHibernate配置文件的BatchSize属性,可以大量减少NHibernate与数据库交互的次数. 1. Batch属性介绍 设置了BatchSize ...

  10. Linux相关文章

    1.linux 中特殊符号用法详解 2.linux之vim命令 3.linux各文件夹的作用 4.修改linux文件权限命令:chmod 5.CentOS 6.6下安装配置Tomcat环境 6.lin ...