xml与数组的相互转化
- 转换后在输出时加上
header(Content-Type:text/xml;charset=utf-8)
<?php
class Service_Xml
{
public function xmlToArray($xml)
{
return json_decode(json_encode(simplexml_load_string($xml)), true);
}
public function arrayToXml($arr)
{
$xml = simplexml_load_string('<request />');
$this->_createXml($arr, $xml);
$xmlData = $xml->saveXML();
return $xmlData;
}
private function _createXml($arr, $xml)
{
foreach ($arr as $k=>$v) {
if (is_numeric($k)) {
$k = 'item';
}
if (is_array($v)) {
$xmlChild = $xml->addChild($k);
$this->_createXml($v, $xmlChild);
} else {
$xml->addChild($k, $v);
}
}
}
}