我们开发时候经常遇到请求返回的数据是XML格式的,根据自己代码需要可能要将数据转换为object(对象)格式,或者是array(数组)格式,根据自己需求来转换。
先简单说下理论:
一,将xml转换为对象。
这个不多说,直接有函数就能搞定,其中有两个函数。
simplexml_load_string()或 simplexml_load_file()
simplexml_load_string()参数是xml字符串;
simplexml_load_file()参数是xml文件地址或url;
二,将xml转换为数组。
将要将XML数据转成object(对象)格式的数据;
然后用json_encode()函数将object格式转成json格式数据;
最后用json_decode()函数将json格式转成数组形式即可。
simplexml_load_string
$xml =
'<?xml version="1.0" encoding="utf-8"?>
<sps-api-request id="ST01-00131-101">
<merchant_id>80000</merchant_id>
<service_id>000</service_id>
<cust_code>nafvz4puwV1PPrQX</cust_code>
<order_id>test2022051114051768670</order_id>
<item_id>ITEMI2022051102051791619</item_id>
<item_name>g2WDWINnj6SVaTU=</item_name>
<tax>11</tax>
<amount>202</amount>
<order_rowno>1</order_rowno>
<encrypted_flg>0</encrypted_flg>
<request_date>20220511140517</request_date>
<limit_second>600</limit_second>
<sps_hashcode>f2d715e97e34bb56d989547p1b75caa29d10ea</sps_hashcode>
</sps-api-request>';$xml =simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
//xml转object
$xml= json_encode($xml); //objecct转json
$xml=json_decode($xml,true); //json转array
echo '<pre>';
var_dump($xml);simplexml_load_file
$xml =simplexml_load_file('./test.xml');//当前路径下的xml文件
$xml= json_encode($xml); //objecct转json
$xml=json_decode($xml,true); //json转array
echo '<pre>';
var_dump($xml);