XMl入门介绍及php操作XML
一、什么是XML
XML全称:Extensible Markup Language
中文名:可扩展标记语言
用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型,允许用户对自己的标记语言进行定义的源语言。
用于传输数据与存储数据
- <?xml version="1.0" encoding="utf-8"?>
- <!-- 这是xml-->
- <libray>
- <book id="1">
- <title><三国演义></title>
- <author>罗贯中</author>
- <price>82</price>
- </book>
- <book id="2">
- <title><水浒传></title>
- <author>施耐庵</author>
- <price>78</price>
- </book>
- </libray>
二、XML和html、json的对比
xml与html对比:
超级文本标记语言 HyperText Markup Language
超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
- <html>
- <head>
- <title>html文件</title>
- </head>
- <body>
- <table>
- <tr>
- <th>姓名</th>
- <th>年龄</th>
- </tr>
- <tr>
- <td>张玲</td>
- <td>20</td>
- </tr>
- <tr>
- <td>李冰</td>
- <td>18</td>
- </tr>
- </table>
- </body>
- </html>
html不一定成对出现,XML则要求所有的标记必须成对出现;
<br/> <img /> <hr>
HTML标记不区分大小写,XML区分大小写。
xml与json对比:
- [{"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)充当程序间交互的中间件(通讯标准)
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' );
- <?xml version="1.0" encoding="utf-8"?>
- <!-- 这是xml-->
- <libray>
- <book id="1" ccc="123">
- <title><三国演义></title>
- <author>罗贯中</author>
- <price>82</price>
- </book>
- <book id="2" ccc="456">
- <title><水浒传></title>
- <author>施耐庵</author>
- <price>78</price>
- </book>
- </libray>
- header('Content-type:text/html;charset=utf8');
- if ( file_exists ( 'demo01.xml' )) {
- $xml = simplexml_load_file ( 'demo01.xml' );
- print_r ( $xml );
- echo "<table>";
- echo "<tr><td>ID</td><td>书名</td><td>作者</td><td>单价</td></tr>";
- foreach($xml->book as $v){
- echo "<tr><td>" .$v->attributes()->ccc . "</td>";
- echo "<td>" .$v->title . "</td>";
- echo "<td>" .$v->author . "</td>";
- echo "<td>" .$v->price . "</td>";
- echo "</tr>";
- }
- echo "</table>";
- } else {
- exit( 'Failed to open test.xml.' );
- }
5.2生成xml:
//在XML文档中的所有文本都会被解析器解析,只有在CDATA部件之内的文本会被解析器忽略。比如文本内容中使用“<”这样的特殊字符时,XML使用解析错误。要对"<"进行转义(<)才能正常解析。
$xml = new SimpleXMLElement ( $string );
header('content-type:text/xml;charset=utf-8');
- header('content-type:text/xml;charset=utf-8');
- $a1= array("id"=>1,"title"=>"<<三国演义>>","author"=>"罗贯中","price"=>80);
- $a2= array("id"=>2,"title"=>"<<水浒传>>","author"=>"施耐庵","price"=>78);
- $arr = array($a1,$a2);
- //echo json_encode($arr);exit;
- $str = "<?xml version='1.0' encoding='utf-8'?><libray>";
- foreach($arr as $v){
- $str .="
- <book id='{$v['id']}'>
- <title><span style="color:#FF0000;"><![CDATA[" .$v['title']. "]]></span></title>
- <author>{$v['author']}</author>
- <price>{$v['price']}</price>
- </book>";
- }
- $str .="</libray>";
- echo $str;
XMl入门介绍及php操作XML的更多相关文章
- XML入门介绍(什么是XML及XML格式)
什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language). XML 是一种很像HTML的标记语言. XML 的设计宗旨是传输数据,而不是显示数据. XML 标 ...
- XML入门介绍
目录 XML 简介 xml 语法 文档声明 (1)创建一个 xml 文件 (2)图书有 id 性 属性 一 表示唯一 标识,书名,有作者,价格的信息 xml 注释 元素(标签) 1)什么是 xml 元 ...
- XML学习笔记(2)--dom4j操作XML
1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...
- xml入门简介--两天学会xml
前言 在很久以前,笔者曾见到过1000+页的xml书,里面还有n多的概念,XSL,Xquery,让人头痛.无奈最近需要用到,所以在w3c恶补了一下.以下大致整理了一下相关概念,但是对XSL等派生语言没 ...
- WebService(2)-XML系列之用Stax操作Xml
源代码下载:链接: http://pan.baidu.com/s/1ntL1a7R password: rwp1 本文主要讲述:利用Stax处理xml文档 一.读取xml 1.基于光标的查找 核心:X ...
- 简单的git入门介绍及常用操作
集中式版本控制系统采用中央服务器上存储的所有文件和实现团队协作.但是CVCS主要缺点是中央服务器的单点故障,即故障.不幸的是,如果中央服务器宕机一小时,然后在该时段没有人可以合作.即使在最坏的情况下, ...
- php操作xml详解
XML是一种流行的半结构化文件格式,以一种类似数据库的格式存储数据.在实际应用中,一些简单的.安全性较低的数据往往使用 XML文件的格式进行存储.这样做的好处一方面可以通过减少与数据库的交互性操作提高 ...
- 【转】【Flex】#010 操作XML文件(E4X)
该教程转载来自于:http://blog.chinaunix.net/uid-14767524-id-2785506.html [看到这边文章的位置,具体原作者未知] 经过一些排版的修改,其他内 ...
- flex 操作xml 实现增删改查 .
一 在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为“元素” 节点:把XML元素与文本结合起来统称为节点 根节点:位于整 ...
随机推荐
- eclipse 工程默认编码修改 JSP编码修改
1. Window->Preferences->General->Workspace->Text file encoding 将其改为UFT-8 新建的文件即为UTF-8编码 ...
- 49. Search in Rotated Sorted Array && Search in Rotated Sorted Array II
Search in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to you before ...
- 项目管理软件之易度1.5,禅道2.0,redmine1.2(附redmine1.2的安装)
http://www.cnblogs.com/ljzforever/archive/2011/06/29/2093786.html 公司最近准备分出一套人马去客户那里做驻场研发,这就涉及到代码库的统一 ...
- 全局修改Lable/Button字体
本次版本需求要把原来的字体全改掉,由于项目中有的是代码创建的,有的是XIB中直接改的,一个一个改工作量太大,使用运行时可以很轻松的实现 首先,项目中大多数设置字体的控件有 Lable, ...
- 洛谷P3372 【模板】线段树 1
P3372 [模板]线段树 1 153通过 525提交 题目提供者HansBug 标签 难度普及+/提高 提交 讨论 题解 最新讨论 [模板]线段树1(AAAAAAAAA- [模板]线段树1 洛谷 ...
- 链接测试工具xenu link sleuth的使用
链接测试工具xenu link sleuth的使用很简单. 可以从这里下载 http://home.snafu.de/tilman/xenulink.html 但是注意到: 如果需要登录才能进入所有的 ...
- Jmeter外部函数引用
Jmeter外部函数引用 1.Beanshell引用Jmeter变量 添加用户自定义变量,输入变量名称和变量值,添加Debug sampler,用于输出初始变量值.
- spark hive 结合处理 把多行变成多列
原数据格式 : gid id score a1 1 90 a1 2 80 a1 3 79 a1 ...
- visio形状内文本的换行符
& Chr() &Shape sp;sp.Characters = "12345" & Chr(10) & "56789"; 注 ...
- $使用dom4j可解析 返回&#x等字样的 html转义字符
如果以GET或POST请求某个系统返回,带有 $#x 那很有可能是axis服务器返回的. <?xml version="1.0" encoding="UTF-8&q ...