XML PHP SimpleXMLElement Object数组转化为普通数组
做微信第三方接口接入的时候发现接口返回的数据都是xml格式的。
以下是如何把xml格式转化为普通的数组格式取值。
xml格式数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $xmlstr="< xml > < mch_appid >".$data['mch_appid']."</ mch_appid > < mchid >".$data['mchid']."</ mchid > < nonce_str >".$data['nonce_str']."</ nonce_str > < partner_trade_no >".$data['partner_trade_no']."</ partner_trade_no > < openid >".$data['openid']."</ openid > < check_name >".$data['check_name']."</ check_name > < amount >".$data['amount']."</ amount > < desc >".$data['desc']."</ desc > < spbill_create_ip >".$data['spbill_create_ip']."</ spbill_create_ip > < sign >".$data['sign']."</ sign ></ xml >"; $res =$this->curl_post_ssl($api, $xmlstr); |
xml转化为数组步骤:
1 | $xml = simplexml_load_string($res , 'SimpleXMLElement' , LIBXML_NOCDATA ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 但是转化过来的并不是普通的php数组,而是SimpleXMLElement Object数组 结果如下:object(SimpleXMLElement)#11 (5) { ["return_code"]=> string(7) "SUCCESS" ["return_msg"]=> string(7) "NO_AUTH" ["result_code"]=> string(4) "FAIL" ["err_code"]=> string(7) "NO_AUTH" ["err_code_des"]=> string(73) "产品权限验证失败,请查看您当前是否具有该产品的权限" } $xml_data = ((array)$xml); |
接下来 进行简单粗暴的强制类型转换
SimpleXMLElement Object数组 转化为普通数组步骤:
如果如下:
1 2 3 4 5 6 7 8 9 10 11 12 | array(5) { ["return_code"]=> string(7) "SUCCESS" ["return_msg"]=> string(7) "NO_AUTH" ["result_code"]=> string(4) "FAIL" ["err_code"]=> string(7) "NO_AUTH" ["err_code_des"]=> string(73) "产品权限验证失败,请查看您当前是否具有该产品的权限" } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」