<h1><span style="font-family:Microsoft YaHei;font-size:24px;color:#ff0000;">array->xml</span></h1>
<span style="background-color: rgb(255, 255, 255);font-size:18px;"><span style="font-family:Microsoft YaHei;">
</span></span>
<span style="background-color: rgb(255, 255, 255);font-size:18px;"><span style="font-family:Microsoft YaHei;">在thinkPHP中将数组存储到xml文件中</span></span>
<span style="background-color: rgb(255, 255, 255);font-size:18px;"><span style="font-family:Microsoft YaHei;">
</span></span>
<span style="font-family:Microsoft YaHei;">$data['name'] = 'myname';
$data['sex'] = 'male';
$data['age'] = '24';
// dump($data);
$xmldata = xml_encode($data,'utf-8','schedule');
$filename = 'myxml.xml';
$result = file_put_contents('./Public/Xml/'.$filename, $xmldata);</span>
这样就将$data数组中的内容存储到了对应目录下的文件中。
xml->array
将xml文件中的数组读取到数组中
第一步,将XML中的数据,读取到数组对象中
<span style="font-family:Microsoft YaHei;font-size:18px;">$xml=simplexml_load_file('./Public/Xml/myxml.xml'); //将XML中的数据,读取到数组对象中 </span>
这样得到的是一个SimpleXMLElement Object数组
第二步,将SimpleXMLElement Object数组转换成普通数组
在支付宝接口demo里有这样的写法:
<span style="font-family:Microsoft YaHei;">/**
* 通过节点路径返回字符串的某个节点值
* $res_data——XML 格式字符串
* 返回节点参数
*/
function getDataForXML($res_data,$node)
{
$xml = simplexml_load_string($res_data);
$result = $xml->xpath($node);
while(list( , $node) = each($result))
{
return $node;
}
} </span>
其实php提供了更简单的方法,直接把 $xml 对象转换为数据就可以了
<span style="font-family:Microsoft YaHei;">$xml = (array)$xml; </span>
整体代码:
<span style="font-family:Microsoft YaHei;">$xml_array=simplexml_load_file('./Public/Schedule/schedule.xml'); //将XML中的数据,读取到数组对象中
</span>
<span style="font-family:Microsoft YaHei;">$xml_array = (array)$xml_array;
dump($xml_array);
// $this->assign('list',$xml_array);</span>