The method I have been using to solve that issue is to convert data in these three steps:
1- apply  the function called "simplexml_load_string" to transform an XML content into XML object
2- convert the XML object into JSON format with the "json_encode" function
3- convert the JSON data to an array using  the "json_decode" function
Here the function I have been using when working with webservices  (through URL):
    $tab = json_decode(XmlToJson($xml), true);
    function XmlToJson($fileContents)
    {
        $fileContents = str_replace(array(
            "\n",
            "\r",
            "\t"
        ), '', $fileContents);
        $fileContents = trim(str_replace('"', "'", $fileContents));
        $fileContents = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $fileContents);
        $fileContents = preg_replace('/xmlns[^=]*="[^"]*"/i', '', $fileContents);
        $fileContents = preg_replace('/[a-zA-Z]+:([a-zA-Z]+[=>])/', '$1', $fileContents);
        $simpleXml = @simplexml_load_string($fileContents);
       
        //$tab = (array) $simpleXml;
       
        $json = json_encode($simpleXml);
        return $json;
    }
