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中(求推荐解决这种方式)
或者有其他方法解决吗?
因为返回的结果集数据量大 其他很多地方要调用数据
急求高手解答! 展开
现在有一个接口,返回的是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中(求推荐解决这种方式)
或者有其他方法解决吗?
因为返回的结果集数据量大 其他很多地方要调用数据
急求高手解答! 展开
1个回答
展开全部
写个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.'不可写';
}
}
}
?>
将数组传进去
生成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.'不可写';
}
}
}
?>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询