本文實例講述了php實現xml與json之間的相互轉換功能。分享給大家供大家參考,具體如下:
用php實現xml與json之間的相互轉換:
相關函數請查看php手冊。
一、參考xml如下
<?xml version="1.0" encoding="UTF-8"?> <humans> <zhangying> <name>張三</name> <sex>男</sex> <old>26</old> </zhangying> <tank> <name>tank</name> <sex> <hao>yes</hao> <aaaa>no</aaaa> </sex> <old>26</old> </tank> </humans>
二、xml轉換成json
利用simplexml
public function xml_to_json($source) { if(is_file($source)){ //傳的是文件,還是xml的string的判斷 $xml_array=simplexml_load_file($source); }else{ $xml_array=simplexml_load_string($source); } $json = json_encode($xml_array); //php5,以及以上,如果是更早版本,請查看JSON.php return $json; }
三、json轉換成xml
利用遞歸函數
public function json_to_xml($source,$charset='utf8') { if(empty($source)){ return false; } //php5,以及以上,如果是更早版本,請查看JSON.php $array = json_decode($source); $xml =''; $xml .= $this->change($array); return $xml; } public function change($source) { $string=""; foreach($source as $k=>$v){ $string .="<".$k.">"; //判斷是否是數組,或者,對像 if(is_array($v) || is_object($v)){ //是數組或者對像就的遞歸調用 $string .= $this->change($v); }else{ //取得標簽數據 $string .=$v; } $string .=""; } return $string; }
上面的方法json_to_xml,可以支持<name>aaaa</name>,不支持<name type='test'>aaaaa</name>看代碼就能看明白.
PS:本站還提供了如下XML與JSON相關工具,方便大家參考使用:
在線XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson
php代碼在線格式化美化工具:
http://tools.jb51.net/code/phpformat
在線XML格式化/壓縮工具:
http://tools.jb51.net/code/xmlformat
json代碼在線格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat
C語言風格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP中json格式數據操作技巧匯總》、《PHP針對XML文件操作技巧總結》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。