如何将PHP中的XML字符串转数组

发布时间:2020-07-22 11:13:07 作者:Leah
来源:亿速云 阅读:182

这篇文章将为大家详细讲解有关如何将PHP中的XML字符串转数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

PHP如何将XML字符串转数组?

首先使用函数“simplexml_load_string()”,将XML字符串转为对象;

$obj = simplexml_load_string($str,"SimpleXMLElement", LIBXML_NOCDATA);

然后使用“json_encode()”函数将对象转为JSON字符串;

$json_str = json_encode($obj);

最后使用“json_decode()”转为数组即。

$xml_arr = json_decode($json_str, true);

完整代码

$str = '<xml>
    <ToUserName> <![CDATA[gh_fc0a06a20993]]> </ToUserName>
    <FromUserName> <![CDATA[oZI8Fj040-be6rlDohc6gkoPOQTQ]]> </FromUserName>
    <CreateTime>1472549042</CreateTime>
    <MsgType> <![CDATA[event]]> </MsgType>
    <Event> <![CDATA[user_consume_card]]> </Event>
    <CardId> <![CDATA[pZI8Fj8y-E8hpvho2d1ZvpGwQBvA]]> </CardId>
    <UserCardCode> <![CDATA[452998530302]]> </UserCardCode>
    <ConsumeSource> <![CDATA[FROM_API]]> </ConsumeSource>
    <LocationName> <![CDATA[]]> </LocationName>
    <StaffOpenId> <![CDATA[oZ********nJ3bPJu_Rtjkw4c]]> </StaffOpenId>
    <VerifyCode> <![CDATA[]]> </VerifyCode>
    <RemarkAmount> <![CDATA[]]> </RemarkAmount>
    <OuterStr> <![CDATA[xxxxx]]> </OuterStr>
</xml>';

$obj = simplexml_load_string($str,"SimpleXMLElement", LIBXML_NOCDATA);
$test = json_decode(json_encode($obj),true);
$arr = [
    'FromUserName' => $test['FromUserName'],
    'ToUserName' => $test['ToUserName'],
    'CreateTime' => $test['CreateTime'],
    'CardId' => $test['CardId'],
    'UserCardCode' => $test['UserCardCode'],
    'ConsumeSource' => $test['ConsumeSource'],
    'StaffOpenId' => $test['StaffOpenId']
];
$arr = array_map('trim',$arr);
var_dump($arr);

关于如何将PHP中的XML字符串转数组就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. php数组转xml
  2. 如何将php中ascii转字符串

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php xml xml字符串

上一篇:使用linux的fio命令对磁盘进行压力测试和验证

下一篇:使用linux的mdadm命令管理linux软RAID

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》