“如何读取这种XML格式”&书信电报;失水事故:用户>&引用;在php中转换为数组或对象
如何在PHP中读取这种XML格式“如何读取这种XML格式”&书信电报;失水事故:用户>&引用;在php中转换为数组或对象,php,xml,Php,Xml,如何在PHP中读取这种XML格式 <Data xmlns:loc="loc"> <loc:user> <loc:userID>12861320</loc:userID> <loc:userMSISDN>244642867</loc:userMSISDN> <loc:us
<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>
12861320
244642867
2019-06-30 17:09:05
排队
我正在使用SimpleXMLElement,但它无法读取这些数据您可以尝试以下代码:
$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>";
我使用的是SimpleXMLElement,但它无法读取具有名称空间的XML数据。
xmlns:loc
的实际值是名称空间。SimpleXML和DOM可以很好地用名称空间解析XML,这里不需要使用字符串函数并删除该信息。
Array
(
[locuser] => Array
(
[locuserID] => 12861320
[locuserMSISDN] => 244642867
[locuserExpiryDate] => 2019-06-30 17:09:05
[locuserStatus] => QUEUE
)
)