您好,欢迎访问一九零五行业门户网

PHP生成和获取XML格式数据实现代码

本文章来给大家介绍在php中生成和获取xml格式数据代码,生成xml我们使用domdocument,读取xml我们使用xmlreader即可,下面我分别给大家介绍.
生成xml格式数据
我们假设系统中有一张学生信息表student,需要提供给第三方调用,并有id,name,sex,age分别记录学生的姓名、性别、年龄等信息.数据库sql代码如下:
create table `student` (     `id` int(11) not null auto_increment,     `name` varchar(50) not null,     `sex` varchar(10) not null,     `age` smallint(3) not null default '0',     primary key  (`id`)   ) engine=myisam  default charset=utf8;  
首先,建立createxml.php文件,先连接数据库,获取数据,代码如下:
include_once (connect.php); //连接数据库     $sql = select * from student;   $result = mysql_query($sql) or die(invalid query:  . mysql_error());   while ($row = mysql_fetch_array($result)) {       $arr[] = array(           'name' => $row['name'],           'sex' => $row['sex'],           'age' => $row['age']       ); //开源代码phprm.com  } 
这个时候,数据就保存在$arr中,你可以使用print_r打印下数据测试,接着,建立xml,循环数组,将数据写入到xml对应的节点中,代码如下:
$doc = new domdocument('1.0', 'utf-8');  // 声明版本和编码   $doc->formatoutput = true;     $r = $doc->createelement(root);   $doc->appendchild($r);     foreach ($arr as $dat) {       $b = $doc->createelement(data);         $name = $doc->createelement(name);       $name->appendchild($doc->createtextnode($dat['name']));       $b->appendchild($name);         $sex = $doc->createelement(sex);       $sex->appendchild($doc->createtextnode($dat['sex']));       $b->appendchild($sex);         $age = $doc->createelement(age);       $age->appendchild($doc->createtextnode($dat['age']));       $b->appendchild($age);         $r->appendchild($b);   }     echo $doc->savexml(); 
我们调用了php内置的类domdocument来处理与生成xml,最终生成的xml格式,代码如下:
open($url); //获取xml $i=1; while ($reader->read()) { if ($reader->nodetype == xmlreader::text) { //判断node类型 $m = $i%3; if($m==1) $name = $reader->value; //读取node值 if($m==2) $sex = $reader->value; if($m==0){ $age = $reader->value; $arr[] = array( 'name' => $name, 'sex' => $sex, 'age' => $age ); } $i++; } } //print_r($arr);
为了将数据name,sex和age分开,我们使用$i%3来判断取模,因为在获取的xml中,节点data下的信息是以3个子节点存在的.
文章地址:
转载随意^^请带上本文地址!
其它类似信息

推荐信息