php webservice 返回 xml 格式保存及调用

求高手指点,现在有一个接口,返回的是xml格式,$client=newsoapclient('xxxxxxxxxxxxxxxxxxxxxx?wsdl',true);$cl... 求高手指点,
现在有一个接口,返回的是xml格式,
$client = new soapclient('xxxxxxxxxxxxxxxxxxxxxx?wsdl',true);
$client->soap_defencoding = 'utf-8';
$param['Id'] = iconv("utf-8", 'utf-8', ‘xxxxx’);
$param['Name'] = iconv("utf-8", 'utf-8', 'xxxx');

$result=$client->call("GetData",array($param));
$date = $result['GetDataResult'];

打印出$date是很长的数组类型,

怎么把这个结果集保存到一个新建的xml中(求推荐解决这种方式)
或者有其他方法解决吗?
因为返回的结果集数据量大 其他很多地方要调用数据
急求高手解答!
展开
 我来答
FanOvO
推荐于2016-04-09
知道答主
回答量:62
采纳率:0%
帮助的人:16.4万
展开全部
写个xml生成类
将数组传进去
生成xml文件就可以
送你个 改改
<?php
class xml {
private $data;
private $encoding='utf-8'; //XML文件编码
private $root='yeedao';

/*---------------------------------------
* 实例化时传递参数
* $data array 执行编译的数据
*---------------------------------------*/
public function __construct($data=''){
$this->data=$data;
if( $this->data=='' ){
exit('请传递参数');
}
}

public function __toString(){
return $this->get_xml();
}
/*----------------------------------------
* 生成XML
*----------------------------------------*/
public function get_xml() {
$xml = "<?xml version=\"1.0\" encoding=\"{$this->encoding}\"?>";
$xml.= "<{$this->root}>";
$xml.= $this->make_xmk($this->data);
$xml.= "</{$this->root}>";
return $xml;
}

/*-------------------------------------
* 将数组或对象转换成XML-DOM格式
*-------------------------------------*/
protected function make_xmk($data) {
$xml = '';
foreach ($data as $key => $value) {
//如果$key是一个数字,前面加item
(is_numeric($key)) ? $key='item'.$key : $key ;
$xml.="<{$key}>";
//如果遍历的$value还是一个array,回调
$xml.= ( is_array($value) || is_object($value)) ? $this->make_xmk($value) : $value;
$xml.="</{$key}>";
}
return $xml;
}

/*-----------------------------------------
* 创建XML文件,成功后返回文件路径
* $path 文件路径
* $filename 文件名
*-----------------------------------------*/
public function touch_xml($path='',$filename=''){
$path=$_SERVER['DOCUMENT_ROOT'].$path;

if($path{strlen($path)-1} != '/')$path.='/';

if(!is_dir($path))return '不是一个目录';

$filename=$path.$filename;
touch ($filename);
chmod($filename,0777);

if(is_writeable($filename)){
if($handle=fopen($filename,'w+')){
if(fwrite($handle,$this->get_xml()) === false){
return '文件'.$filename.'写入失败';
}else{
return $filename; //返回路径
}
}else{
return '不能打开文件'.$filename;
}
}else{
return '文件'.$filename.'不可写';
}

}
}
?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式