`
moqiang02
  • 浏览: 529732 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

PHP生成和获取XML格式数据

 
阅读更多

在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据。

生成XML格式数据

我们假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名、性别、年龄等信息。

  1. CREATETABLE`student`(
  2. `id`int(11)NOTNULLauto_increment,
  3. `name`varchar(50)NOTNULL,
  4. `sex`varchar(10)NOTNULL,
  5. `age`smallint(3)NOTNULLdefault'0',
  6. PRIMARYKEY(`id`)
  7. )ENGINE=MyISAMDEFAULTCHARSET=utf8;

首先,建立createXML.php文件,先连接数据库,获取数据。

  1. include_once("connect.php");//连接数据库
  2. $sql="select*fromstudent";
  3. $result=mysql_query($sql)ordie("Invalidquery:".mysql_error());
  4. while($row=mysql_fetch_array($result)){
  5. $arr[]=array(
  6. 'name'=>$row['name'],
  7. 'sex'=>$row['sex'],
  8. 'age'=>$row['age']
  9. );
  10. }

这个时候,数据就保存在$arr中,你可以使用print_r打印下数据测试。

接着,建立xml,循环数组,将数据写入到xml对应的节点中。

  1. $doc=newDOMDocument('1.0','utf-8');//声明版本和编码
  2. $doc->formatOutput=true;
  3. $r=$doc->createElement("root");
  4. $doc->appendChild($r);
  5. foreach($arras$dat){
  6. $b=$doc->createElement("data");
  7. $name=$doc->createElement("name");
  8. $name->appendChild($doc->createTextNode($dat['name']));
  9. $b->appendChild($name);
  10. $sex=$doc->createElement("sex");
  11. $sex->appendChild($doc->createTextNode($dat['sex']));
  12. $b->appendChild($sex);
  13. $age=$doc->createElement("age");
  14. $age->appendChild($doc->createTextNode($dat['age']));
  15. $b->appendChild($age);
  16. $r->appendChild($b);
  17. }
  18. echo$doc->saveXML();

我们调用了PHP内置的类DOMDocument来处理与生成xml。最终生成的xml格式请点击这里看效果

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <root>
  3. <data>
  4. <name>李王皓</name>
  5. <sex>男</sex>
  6. <age>21</age>
  7. </data>
  8. ...
  9. </root>

获取XML格式数据

现在我们假设要从第三方获取学生信息,数据格式是XML,我们需要使用PHP解析XML,然后将解析后的数据显示或者写入本地数据库。而这里关键的一步是解析XML。

PHP有很多中方法可以解析XML,其中PHP提供了内置的XMLReader类可以循序地浏览过xml档案的节点,你可以想像成游标走过整份文件的节点,并抓取需要的内容。使用XMLReader是高效的,尤其是读取非常大的xml数据,相对其他方法,使用XMLReader消耗内存非常少。

  1. header("Content-type:text/html;Charset=utf-8");
  2. $url="http://www.helloweba.com/demo/importXML/createXML.php";
  3. $reader=newXMLReader();//实例化XMLReader
  4. $reader->open($url);//获取xml
  5. $i=1;
  6. while($reader->read()){
  7. if($reader->nodeType==XMLReader::TEXT){//判断node类型
  8. $m=$i%3;
  9. if($m==1)
  10. $name=$reader->value;//读取node值
  11. if($m==2)
  12. $sex=$reader->value;
  13. if($m==0){
  14. $age=$reader->value;
  15. $arr[]=array(
  16. 'name'=>$name,
  17. 'sex'=>$sex,
  18. 'age'=>$age
  19. );
  20. }
  21. $i++;
  22. }
  23. }
  24. //print_r($arr);

为了将数据name,sex和age分开,我们使用$i%3来判断取模,因为在获取的xml中,节点data下的信息是以3个子节点存在的。

最后,你可以将获取到的数据输出或者执行SQL语句,将数据写入本地数据库,此步骤略过,效果请看:点击这里看效果

原文链接:http://www.helloweba.com/view-blog-173.html

分享到:
评论

相关推荐

    PHP生成和获取XML格式数据的方法

    主要介绍了PHP生成和获取XML格式数据的方法,结合实例形式较为详细的分析了PHP操作数据库生成XML及获取XML格式数据的相关技巧,需要的朋友可以参考下

    php从数据库中读取数据生成xml

    php从数据库中读取数据生成xml,很方便的代码

    php生成xml并读取xml中的数据已经测试号

    php生成xml并读取xml中的数据已经测试号

    php动态生成xml文件

    一个php小程序,动态生成xml文件,读者可以在此基础上进行扩展,如读取DB数据再循环生成xml标签等等。

    PHP生成json和xml类型接口数据格式

    在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据。

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    数组转换成XML格式 日期计算 是否为电子邮件格式 柱形统计图 检查是否为一个合法的时间格式 检测URL地址有效性 检测文件是否图片 检测是否可以以网页形式显示 检测是否序列化后的字符串 模仿JAVASCRIPT的...

    PHP版本获取全球国家城市地区的地址库已生成mysql语句

    1、LocList_en.xml 和 LocList_cn.xml:包含QQ国际版和国内版的地址库; 2、index.php:编写的PHP文件生成了mysql数据库的插入语句; 3、install.sql:mysql数据库的插入语句;

    php生成百度sitemap站点地图类函数实例

    本文实例讲述了php生成百度sitemap站点地图类函数的方法,分享给大家供大家参考。具体实现方法如下: 问题概述: 公司网站是问答百科的网站、seo工程师提出需求说根据网站的问题来生成xml文件。每个xml文件包含5000...

    Faker:一个生成假象数据的PHP类库.zip

    Faker是一个给你生成假象数据的PHP库,无论您是需要引导你的数据库,创建好看的XML文档,填写在你的持久性压力测试,或匿名从生产服务获取的数据,Faker都可以实现。

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程15:PHP生成HTML文件原理 PHP100视频教程16:PHP小偷程序原理和实例 PHP100视频教程17:PHP面向对象开发的学习(一) PHP100视频教程18:PHP面向对象开发的学习(二) PHP100视频教程19:PHP面向...

    Faker:一个生成假象数据的PHP类库

    Faker是一个给你生成假象数据的PHP库,无论您是需要引导你的数据库,创建好看的XML文档,填写在你的持久性压力测试,或匿名从生产服务获取的数据,Faker都可以实现。

    生成百度sitemap站点地图的php类.zip

     }首先取出1000条数据(可以灵活些成活的,方便以后修改),然后循环生成xml格式文件。file_puts_contens写入文件。然后再把生成的xml文件名称、取出问题的最小id、取出问题的最大id、取出问题的条数写出一个索引...

    php网络开发完全手册

    15.4.5 获取列的数据类型 257 15.4.6 获取列的长度 257 15.4.7 获取列的标志 257 15.4.8 一个完整的查看表中各列属性 15.4.8 的实例 258 15.5 常见问题与解决方案 259 15.6 小结 261 第16章 数据库中的程序逻辑 262 ...

    PHP手册大全

    什么是 PHP 文件? PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码 PHP 代码在服务器上执行,而结果以纯文本返回浏览器 PHP 文件的后缀是 ".php" PHP 能够做什么?...您也可以输出任何文本,比如 XHTML 和 XML。

    php制作基于xml的RSS订阅源功能示例

    本文实例讲述了php制作基于xml的RSS订阅源功能。...再就是用php文件从数据库读取数据并生成 RSS 文件,这里用一个数组模拟从数据库读取的数据: &lt;?php class Rss{ protected $dom = null; protected

    PHP网络编程技术与实践 源码

    7.5.1 XML数据存储 7.5.2 具体功能实现 7.6 本章小结 第8章 用户会话管理Cookie和Session 8.1 Cookie的使用 8.1.1 Cookie简介及其工作原理 8.1.2 设置Cookie变量 8.1.3 接收和处理Cookie 8.1.4 删除Cookie变量 8.1.5...

    PHPWeb开发技术指南——pdf格式

    7.2 PHP和XML 180 7.2.1 什么是XML 180 7.2.2 DocBook 183 7.2.3 WML(Wireless Markup Language) 184 7.2.4 RDF—Resource Description Framework 184 7.2.5 XML文档 184 7.2.6 PHP和Expat 190 7.2.7 DOM—Document ...

    php课程(共100多节)

    15:PHP生成HTML文件原理 16:PHP小偷程序原理和实例 17:PHP面向对象开发的学习(一) 18:PHP面向对象开发的学习(二) 19:PHP面向对象开发的学习(三) 20:PHP面向对象开发的学习(四) 21:PHP面向对象开发的...

Global site tag (gtag.js) - Google Analytics