标签:public ade omd with int 图片 使用 sim col
1.PHP 生成 XML 数据
① 拼接字符串
② 使用系统类(DomDocument,XMLWriter,SimpleXML)
例1 使用 PHP 系统类中的 DomDocument 类:
<?php $dom = new DomDocument(‘1.0‘,‘utf-8‘); $element = $dom->createElement(‘test‘,‘This is a root element‘); $dom->appendChild($element); echo $dom->saveXML();
页面输出
This is a root element
查看源代码显示:
<?xml version="1.0" encoding="utf-8"?> <test>This is a root element</test>
例2 拼接字符串
//修改 http 头信息
header("Content-Type:text/xml");
//xml头信息
$xml = "<?xml version=‘1.0‘ encoding=‘utf-8‘?>\n";
//根节点开始标签
$xml .= "<root>\n";
//code
$xml .= "<code>200</code>\n";
//message
$xml .= "<message>数据返回成功</message>\n";
//data
$xml .= "<data>\n";
$xml .= "<id>1</id>\n";
$xml .= "<name>John</name>\n";
$xml .= "</data>\n";
//根节点结束标签
$xml .= "</root>";
echo $xml;
exit();
页面输出:
This XML file does not appear to have any style information associated with it. The document tree is shown below. <root> <code>200</code> <message>数据返回成功</message> <data> <id>1</id> <name>John</name> </data> </root>
http 响应头信息:

2.XML 方式封装通信接口
<?php
class Response{
/**
* 按 xml 方式输出通信数据
* @param integer $code 状态码
* @param string $message 提示信息
* @param array $data 数据
* return string
*/
public static function xml($code,$message,$data){
if(!is_numeric($code)){
return ‘‘;
}
$result = array(
‘code‘ => $code,
‘message‘ => $message,
‘data‘ => $data
);
//修改 http 头信息
header("Content-Type:text/xml");
//xml头信息
$xml = "<?xml version=‘1.0‘ encoding=‘utf-8‘?>";
//根节点开始标签
$xml .= "<root>";
$xml .= self::xmlToEncode($result);
//根节点结束标签
$xml .= "</root>";
echo $xml;
exit();
}
//解析$result至xml
public static function xmlToEncode($data){
$xml = $attr = "";
foreach($data as $k=>$v){
//如果$k是数字(data(code,message,data中的data)数据里面还含有索引数组),要进行如下判断
if(is_numeric($k)){
$attr = "id=‘{$k}‘";
$k = ‘item ‘;
}
$xml .= "<{$k} {$attr}>";
//如果$v是数组,则递归调用该方法
if(is_array($v)){
$xml .= self::xmlToEncode($v);
}else{
$xml .= $v;
}
$xml .= "</{$k}>";
}
return $xml;
}
}
调用该页面 test.php
$data 第一种情况:
<?php
require ‘response.php‘;
$data = array(
‘id‘=>1,
‘name‘=>‘Mary‘
);
Response::xml(200,‘数据返回成功‘,$data);
页面输出:
This XML file does not appear to have any style information associated with it. The document tree is shown below. <root> <code>200</code> <message>数据返回成功</message> <data> <id>1</id> <name>Mary</name> </data> </root>
$data 第二种情况
<?php
require ‘response.php‘;
$data = array(
‘id‘=>1,
‘name‘=>‘Mary‘,
‘type‘=>array(1,3,6) //<0>1</0><1>3</1><2>6</2> => <item id="0">1</item>...
);
Response::xml(200,‘数据返回成功‘,$data);
页面输出:
This XML file does not appear to have any style information associated with it. The document tree is shown below. <root> <code>200</code> <message>数据返回成功</message> <data> <id>1</id> <name>Mary</name> <type> <item id="0">1</item> <item id="1">3</item> <item id="2">6</item> </type> </data> </root>
$data 第三中情况:
<?php
require ‘response.php‘;
$data = array(
‘id‘=>1,
‘name‘=>‘Mary‘,
‘type‘=>array(‘a‘=>1,‘b‘=>3,‘c‘=>6)
);
Response::xml(200,‘数据返回成功‘,$data);
页面输出:
This XML file does not appear to have any style information associated with it. The document tree is shown below. <root> <code>200</code> <message>数据返回成功</message> <data> <id>1</id> <name>Mary</name> <type> <a>1</a> <b>3</b> <c>6</c> </type> </data> </root>
标签:public ade omd with int 图片 使用 sim col
原文地址:https://www.cnblogs.com/lxj0205/p/9983104.html