+ -
当前位置:首页 → 问答吧 → 发现一个快速将XML文件转化为数组的方法(不用循环,超快速),不知道是否有人想到了

发现一个快速将XML文件转化为数组的方法(不用循环,超快速),不知道是否有人想到了

时间:2008-10-08

来源:互联网

只需要将序列化的对象数组中'O:16:"SimpleXMLElement"'替换为'a',然后在反序列化就成了,连循环都不用。
只是分享一下自己的经验,不知道是不是有人已经想到了。

class xml2array{
public $str = '';
public $type = 0; //0为字符串,1为文件

function readxml(){
if($this->type==1){
$this->xmlstr = simplexml_load_file($this->str);
}else{
$this->xmlstr = simplexml_load_string($this->str);
}
}

function xarray(){
$this->readxml();
$arrstr = array();

$str = serialize($this->xmlstr);
$str = str_replace('O:16:"SimpleXMLElement"', 'a', $str);
$arrstr = unserialize($str);

return $arrstr;
}
}


再补充一个数组转XML的程序:
class array2xml{
var $xml;
public $topitem = "xmlAll";
public $encode = "utf-8";

function array2xml($array){
$this->xml='';
$this->xml.="";

$this->xml.=$this->_array2xml($array);
}

function getXml(){
return $this->xml.="";
}

function _array2xml($array){
foreach($array as $key=>$val){
is_numeric($key)&&$key="item id=\"$key\"";
$xml.="";
$xml.=is_array($val)?$this->_array2xml($val)$val==''?"*Null":delhtml(str_replace('&', '', $val)));
list($key,)=explode(' ',$key);
$xml.="";
}

return $xml;
}
}

作者: Ir.Chuh   发布时间: 2008-10-08

分享可贵!

作者: ㊣o℃微笑   发布时间: 2008-10-08

好像有点意思哦

作者: jacky750512   发布时间: 2008-10-08

好思路,比我的思想要整整发达10年以上,顶了=700) window.open('http://bbs.phpchina.com/images/smilies/default/victory.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

作者: zxlovest   发布时间: 2008-10-08

呵呵,今天做开发的时候无意中发现的规律,挺好用的,以后我的XML解析就用它了

作者: heartevil   发布时间: 2008-10-08

能说下,是怎么转过来的吗,原理是什么

作者: jsjsj的弟弟   发布时间: 2008-10-08

学习学习,谢谢楼主

作者: Ankar   发布时间: 2008-10-08

什么原理@!!!!!

作者: lun0412   发布时间: 2008-10-08

还是绕路了。替换序列符号不完全安全,
正常情况应该使用php读取xml的多套库中的一种

作者: mamiw   发布时间: 2008-10-08