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

2020-08-12 22:21:15

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);
相关文章 大家在看