大家好
之前遇到把陣列轉成 XML 格式的需求,這邊給大家參考一下。
// array to xml
function array_to_xml($data, &$xml_data)
{
foreach( $data as $key => $value )
{
if( is_array($value) )
{
if( is_numeric($key) )
{
$key = 'item'.$key; //dealing with <0/>..<n/> issues
}
$subnode = $xml_data->addChild($key);
array_to_xml($value, $subnode);
}
else
{
//20160523 zoearth 修正CDATA寫入
if(preg_match("/[\x{4e00}-\x{9fa5}]/u",$value))
{
$xmlCData = $xml_data->addChild($key);
$node = dom_import_simplexml($xmlCData);
$node->appendChild($node->ownerDocument->createCDATASection(htmlspecialchars($value)));
}
else
{
$xml_data->addChild($key,htmlspecialchars($value));
}
}
}
}
$orderData = array(
'name' => '台中阿任',
'sex' => '男',
'food' => '薯條',
);
// 處理 array to xml
$xml_data = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><ORDER_DOC/>');
array_to_xml($orderData, $xml_data);
$xml = $xml_data->asXML();
echo $xml;
給大家參考囉
感恩。

留言板
歡迎留下建議與分享!希望一起交流!感恩!