如何在php中读取此类XML格式“ <loca:user>”并转换为数组或对象

时间:2019-07-12 09:49:48

标签: php xml

如何在PHP中读取此类XML格式

<Data xmlns:loc="loc">
                <loc:user>
                    <loc:userID>12861320</loc:userID>
                    <loc:userMSISDN>244642867</loc:userMSISDN>
                    <loc:userExpiryDate>2019-06-30 17:09:05</loc:userExpiryDate>
                    <loc:userStatus>QUEUE</loc:userStatus>
                </loc:user>             </Data>

我正在使用SimpleXMLElement,但无法读取这些数据

1 个答案:

答案 0 :(得分:-1)

您可以尝试以下代码:

$xml = '<Data xmlns:loc="loc">
            <loc:user>
                <loc:userID>12861320</loc:userID>
                <loc:userMSISDN>244642867</loc:userMSISDN>
                <loc:userExpiryDate>2019-06-30 17:09:05</loc:userExpiryDate>
                <loc:userStatus>QUEUE</loc:userStatus>
            </loc:user>             
        </Data>';


$xml= preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $xml); // adding this worked for me
$array = json_decode(json_encode((array)simplexml_load_string($xml)),true);

echo "<pre>";
print_r($array);
echo "</pre>";

输出:

Array
(
    [locuser] => Array
        (
            [locuserID] => 12861320
            [locuserMSISDN] => 244642867
            [locuserExpiryDate] => 2019-06-30 17:09:05
            [locuserStatus] => QUEUE
        )

)