• 技术文章 >后端开发 >PHP问题

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

    GuanhuiGuanhui2020-07-22 10:02:57原创884

    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

    以上就是PHP如何将XML字符串转数组?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:apache不支持php怎么办 下一篇:nginx找不到php文件怎么办?
    线上培训班

    相关文章推荐

    • php数组去掉重复值的方法汇总• php如何把json转换成数组• php数组如何去掉键名• PHP 如何数据库转义?• 关于php分页功能的实现

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网