xml格式與陣列格式相互轉化
阿新 • • 發佈:2019-02-15
<?php /** 2016年10月18日14:09:01 **/ simplexml 解析 xml 文件 //匯入xml文件 $sx = simplexml_load_file('./book.xml'); //$sx 是物件 + 陣列的混合體 echo $sx->book[1]->title; // xml檔案 轉換成 陣列格式 1.匯入xml文件 $sx = simplexml_load_file('./book.xml'); 2.使用遞迴, 把simplexml 物件 (array) 成陣列格式 function toArray($sim){ $arr = (array)$sim; foreach ($arr as $k => $v) { if ($v instanceof simplexmlelement || is_array($v)) { $arr[$k] = toArray($v); } } return $arr; } $xmlarr = toArray($simxml); //陣列 轉換成 xml檔案 (做API介面的時候,需要把資料庫中的東西變成xml文件) 1.有一個多維陣列$arr,需要轉換成為xml檔案 2.利用遞迴實現 function arrToxml($arr, $node=null){ if ($node === null) { $simxml = new simplexmlelement('<?xml version="1.0" encoding="utf-8"?><root></root>'); }else{ $simxml = $node; } foreach ($arr as $k => $v) { if (is_array($v)) { arrToxml($v,$simxml->addChild($k)); }else if (is_numeric($k)) { $simxml->addChild("item".$v); }else{ $simxml->addChild($k,$v); } } return $simxml->savaxml(); } header('content-type: text/xml'); echo arrToxml($arr);