PHP实现生成XML数据和解析XML格式数据
2014-11-27 15:34
711 查看
本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据。
1、生成XML格式数据
MySQL中现有一张用户表,信息如下:
要获取出来生成XML格式文件发送给客户端
方法如下:
调用这个方法后在页面上可以看到所有数据,查看源代码会显示如下内容:
1、解析XML格式数据并写入数据库中
现在把刚才生产的XML数据解析出来写到一个新的表中
方法如下;
//读取XML文件的方法
function readXML($url)
{
header("Content-type:text/html; Charset=utf-8");
$reader = new XMLReader(); //实例化XMLReader
$reader->open($url); //获取xml
$i=1;
while ($reader->read())
{
if ($reader->nodeType == XMLReader::TEXT)
{ //判断node类型
$m = $i%5;
switch ($m)
{
case 1:
$name = $reader->value;
break;
case 2:
$password = $reader->value;
break;
case 3:
$sex = $reader->value;
break;
case 4:
$age = $reader->value;
break;
case 0:
$mailbox = $reader->value;
$db = mysql_connect("localhost", "root");
mysql_select_db("phpdb",$db);
//将读到的数据写入数据库的表中
mysql_query("insert into test values('$name','$password',$sex,$age,'$mailbox');");
//将读到的一个完整对象的元素写入数组中
// $userInfo[] = array
// (
// 'name' => $name,
// 'password' => $password,
// 'sex' => $sex,
// 'age' => $age,
// 'mailbox' => $mailbox
// );
break;
}
$i++;
}
}
}
}
调用这个方法将把数据写入到test表中,效果图如下;
1、生成XML格式数据
MySQL中现有一张用户表,信息如下:
要获取出来生成XML格式文件发送给客户端
方法如下:
//产生XML的方法 function createXML() { $db = mysql_connect("localhost", "root"); mysql_select_db("phpdb",$db); $sql = "select * from user"; $result = mysql_query($sql) or die("Invalid query: " . mysql_error()); //将查询到的用户数据保存到$userInfo数组中 while ($row = mysql_fetch_array($result)) { $userInfo[] = array ( 'name' => $row['name'], 'password' => $row['password'], 'sex' => $row['sex'], 'age' => $row['age'], 'mailbox' => $row['mailbox'] ); } $doc = new DOMDocument('1.0', 'utf-8'); // 声明版本和编码 $doc->formatOutput = true; $root = $doc->createElement("root"); $doc->appendChild($root); foreach ($userInfo as $data) { $element = $doc->createElement("user"); $name = $doc->createElement("name"); $name->appendChild($doc->createTextNode($data['name'])); $element->appendChild($name); $password = $doc->createElement("password"); $password->appendChild($doc->createTextNode($data['password'])); $element->appendChild($password); $sex = $doc->createElement("sex"); $sex->appendChild($doc->createTextNode($data['sex'])); $element->appendChild($sex); $age = $doc->createElement("age"); $age->appendChild($doc->createTextNode($data['age'])); $element->appendChild($age); $mailbox = $doc->createElement("mailbox"); $mailbox->appendChild($doc->createTextNode($data['mailbox'])); $element->appendChild($mailbox); $root->appendChild($element); } echo $doc->saveXML(); }
调用这个方法后在页面上可以看到所有数据,查看源代码会显示如下内容:
1、解析XML格式数据并写入数据库中
现在把刚才生产的XML数据解析出来写到一个新的表中
方法如下;
//读取XML文件的方法
function readXML($url)
{
header("Content-type:text/html; Charset=utf-8");
$reader = new XMLReader(); //实例化XMLReader
$reader->open($url); //获取xml
$i=1;
while ($reader->read())
{
if ($reader->nodeType == XMLReader::TEXT)
{ //判断node类型
$m = $i%5;
switch ($m)
{
case 1:
$name = $reader->value;
break;
case 2:
$password = $reader->value;
break;
case 3:
$sex = $reader->value;
break;
case 4:
$age = $reader->value;
break;
case 0:
$mailbox = $reader->value;
$db = mysql_connect("localhost", "root");
mysql_select_db("phpdb",$db);
//将读到的数据写入数据库的表中
mysql_query("insert into test values('$name','$password',$sex,$age,'$mailbox');");
//将读到的一个完整对象的元素写入数组中
// $userInfo[] = array
// (
// 'name' => $name,
// 'password' => $password,
// 'sex' => $sex,
// 'age' => $age,
// 'mailbox' => $mailbox
// );
break;
}
$i++;
}
}
}
}
调用这个方法将把数据写入到test表中,效果图如下;
相关文章推荐
- php实现解析xml并生成sql语句的方法
- 11.PHP生成XML数据,android解析XML案例简介
- 泛型实现不同类型的数据生成XML文件
- PHP用SAX解析XML的实现代码与问题分析
- 【php】jquery中$.get实现解析json格式数据及jsonp跨域
- Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库
- 解析php DOMElement 操作xml 文档的实现代码
- PHP XML数据解析代码
- 使用PHP生成和获取XML格式数据
- 学习笔记之cocos2d-x2.1.1实现修改plist文件数据,用TinyXml解析XML
- android-利用xml解析和生成数据
- ajax解析xml数据并生成下拉列表框
- 一个简单的xml类,可以解析和生成xml文件数据
- 利用Flash AS2.0实现读取php xml数据和插入记录
- php获取通过http协议post提交过来xml数据及解析xml
- Php从数据库里读出数据,并生成xml文件
- Android中的XML解析与生成——Pull解析xml、实现xml文件的生成
- box2d 描点工具生成b2Shape数据(xml通用格式),oc、c++解析模块类文件,b2Shape数据可视化工具
- 使用Xml类下的newPullParser ()、newSerializer ()方法,解析xml数据和序列化生成xml数据
- 学习笔记之cocos2d-x2.1.1实现修改plist文件数据,用TinyXml解析XML