php中将SimpleXMLElement Object数组转化为普通数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中将SimpleXMLElement Object数组转化为普通数组相关的知识,希望对你有一定的参考价值。

做微信开发,鉴于微信POST的消息是XML数据包,通过SimpleXMLElement Object获取的数据不好操作,需要转化为普通数组。

网上找了很多方法都不理想,发现通过json_decode和json_encode可以转化,遂分享给大家。

$postStr = ‘<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>;
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);

$jsonStr = json_encode($postObj);
$jsonArray = json_decode($jsonStr,true);

print_r($jsonArray);

输出结果为:

Array
(
    [ToUserName] => toUser
    [FromUserName] => fromUser
    [CreateTime] => 1348831860
    [MsgType] => text
    [Content] => this is a test
    [MsgId] => 1234567890123456
)

这样操作起来就容易多了。

以上是关于php中将SimpleXMLElement Object数组转化为普通数组的主要内容,如果未能解决你的问题,请参考以下文章

在 puphpet PHP 5.6 上找不到类“SimpleXMLElement”

如何在 PHP 中回显此 SimpleXMLElement 中的 OK 属性? [复制]

PHP:SimpleXMLElement() 类和 SimpleXML_load_string() 有啥区别?

php 扩展SimpleXMLElement

PHP中SimpleXMLElement对象字符编码

解决PHP-问题:Class 'SimpleXMLElement' not found in