PHP cURL query retrieve XML Data as PHP Object
I receive the data of an XML page in a curl query. At the moment the data is stored in a variable and with a var_dump() the contents of the XML file without tags are stored in a variable. But I want to store the XML data as a PHP object. I have tried both new SimpleXMLElement($data) and simplexml_load_string(). Both do not work. With SimpleXMLElement($data) I get an empty object back.
EDIT: The XML Data i receive uses namespaces:
<ad:ad key="228228073" url="https://services.mobile.de/search-api/ad/228228073"><ad:creation-date value="2017-11-07T08:05:48+01:00"><ad:modification-date value="2020-05-25T11:37:22+02:00"><ad:detail-page url="https://suchen.mobile.de/auto-inserat/andere-andere-radical-rxc-spyder-v8-paddle-shift-schaltung-adenau/228228073.html?source=api"><ad:vehicle><ad:class key="Car" url="https://services.mobile.de/refdata/classes/Car"><resource:local-description xml-lang="en">Car</resource:local-description></ad:class><ad:category key="Cabrio" url="https://services.mobile.de/refdata/classes/Car/categories/Cabrio"><resource:local-description xml-lang="en">Cabriolet / Roadster</resource:local-description></ad:category><ad:make key="ANDERE" url="https://services.mobile.de/refdata/classes/Car/makes/ANDERE"><resource:local-description xml-lang="en">Other</resource:local-description></ad:make><ad:model key="ANDERE" url="https://services.mobile.de/refdata/classes/Car/makes/ANDERE/models/ANDERE"><resource:local-description xml-lang="en">Other</resource:local-description></ad:model><ad:model-description value="Radical RXC Spyder V8, Paddle-Shift-Schaltung"><ad:damage-and-unrepaired value="false"><ad:accident-damaged value="false"><ad:roadworthy value="true"><ad:features url="https://services.mobile.de/refdata/classes/Car/features"><ad:feature key="ALLOY_WHEELS" url="https://services.mobile.de/refdata/classes/Car/features/ALLOY_WHEELS"><resource:local-description xml-lang="en">Alloy wheels</resource:local-description></ad:feature><ad:feature key="POWER_ASSISTED_STEERING" url="https://services.mobile.de/refdata/classes/Car/features/POWER_ASSISTED_STEERING"><resource:local-description xml-lang="en">Power Assisted Steering</resource:local-description></ad:feature><ad:feature key="FULL_SERVICE_HISTORY" url="https://services.mobile.de/refdata/classes/Car/features/FULL_SERVICE_HISTORY"><resource:local-description xml-lang="en">Full Service History</resource:local-description></ad:feature><ad:feature key="SPORT_SEATS" url="https://services.mobile.de/refdata/classes/Car/features/SPORT_SEATS"><resource:local-description xml-lang="en">Sport seats</resource:local-description></ad:feature><ad:feature key="PERFORMANCE_HANDLING_SYSTEM" url="https://services.mobile.de/refdata/classes/Car/features/PERFORMANCE_HANDLING_SYSTEM"><resource:local-description xml-lang="en">Sports suspension</resource:local-description></ad:feature><ad:feature key="SPORT_PACKAGE" url="https://services.mobile.de/refdata/classes/Car/features/SPORT_PACKAGE"><resource:local-description xml-lang="en">Sports package</resource:local-description></ad:feature><ad:feature key="MULTIFUNCTIONAL_WHEEL" url="https://services.mobile.de/refdata/classes/Car/features/MULTIFUNCTIONAL_WHEEL"><resource:local-description xml-lang="en">Multifunction steering wheel</resource:local-description></ad:feature><ad:feature key="NONSMOKER_VEHICLE" url="https://services.mobile.de/refdata/classes/Car/features/NONSMOKER_VEHICLE"><resource:local-description xml-lang="en">Non-smoker vehicle</resource:local-description></ad:feature></ad:features><ad:specifics><ad:exterior-color key="WHITE" url="https://services.mobile.de/refdata/colors/WHITE"><resource:local-description xml-lang="en">White</resource:local-description><ad:manufacturer-color-name value="Brilliantweiß"></ad:manufacturer-color-name></ad:exterior-color><ad:mileage value="1500"><ad:first-registration value="2015-01"><ad:emission-sticker key="EMISSIONSSTICKER_NONE" url="https://services.mobile.de/refdata/emissionstickers/EMISSIONSSTICKER_NONE"><resource:local-description xml-lang="en">1 (None)</resource:local-description></ad:emission-sticker><ad:fuel key="PETROL" url="https://services.mobile.de/refdata/fuels/PETROL"><resource:local-description xml-lang="en">Petrol</resource:local-description></ad:fuel><ad:power value="353"><ad:gearbox key="MANUAL_GEAR" url="https://services.mobile.de/refdata/gearboxes/MANUAL_GEAR"><resource:local-description xml-lang="en">Manual gearbox</resource:local-description></ad:gearbox><ad:climatisation key="NO_CLIMATISATION" url="https://services.mobile.de/refdata/climatisations/NO_CLIMATISATION"><resource:local-description xml-lang="en">No climatisation</resource:local-description></ad:climatisation><ad:num-seats value="2"><ad:cubic-capacity value="3000"><ad:condition key="USED" url="https://services.mobile.de/refdata/conditions/USED"><resource:local-description xml-lang="en">Used vehicle</resource:local-description></ad:condition><ad:interior-color key="BLACK" url="https://services.mobile.de/refdata/interiorColors/BLACK"><resource:local-description xml-lang="en">Black</resource:local-description></ad:interior-color><ad:interior-type key="OTHER_INTERIOR_TYPE" url="https://services.mobile.de/refdata/interiorTypes/OTHER_INTERIOR_TYPE"><resource:local-description xml-lang="en">Other</resource:local-description></ad:interior-type><ad:number-of-previous-owners>1</ad:number-of-previous-owners><ad:countryversion key="DE" url="https://services.mobile.de/refdata/countryVersion/DE"></ad:countryversion></ad:cubic-capacity></ad:num-seats></ad:power></ad:first-registration></ad:mileage></ad:specifics></ad:roadworthy></ad:accident-damaged></ad:damage-and-unrepaired></ad:model-description></ad:vehicle><ad:highlights><ad:highlight>Flaggschiff mit 480 PS</ad:highlight></ad:highlights><ad:description></ad:description><ad:images count="1" gallery-url="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/k3gAAOSw~ppbozeN/$_23.JPG" url="https://services.mobile.de/search-api/ad/228228073/images"><ad:image><ad:representation size="S" url="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/k3gAAOSw~ppbozeN/$_18.JPG"><ad:representation size="XL" url="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/k3gAAOSw~ppbozeN/$_27.JPG"><ad:representation size="ICON" url="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/k3gAAOSw~ppbozeN/$_23.JPG"><ad:representation size="L" url="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/k3gAAOSw~ppbozeN/$_1.JPG"><ad:representation size="M" url="https://i.ebayimg.com/00/s/MTIwMFgxNjAw/z/k3gAAOSw~ppbozeN/$_24.JPG"></ad:representation></ad:representation></ad:representation></ad:representation></ad:representation></ad:image></ad:images><ad:price currency="EUR" type="FIXED"><ad:consumer-price-amount value="82900.00"><ad:vatable value="true"><ad:vat-rate value="0.1900"></ad:vat-rate></ad:vatable></ad:consumer-price-amount></ad:price><seller:seller key="7562881" url="https://services.mobile.de/search-api/seller/7562881"><seller:type value="DEALER" commercial="true"><seller:address><seller:zipcode value="53518"><seller:city value="Adenau"><seller:country-code value="DE"></seller:country-code></seller:city></seller:zipcode></seller:address><seller:coordinates><seller:latitude>50.379811</seller:latitude><seller:longitude>6.945469</seller:longitude></seller:coordinates></seller:type></seller:seller></ad:detail-page></ad:modification-date></ad:creation-date></ad:ad>
Here is my Code:
<?php function CallAPI($method, $url, $data = false) { $curl = curl_init(); switch ($method) { case "POST": curl_setopt($curl, CURLOPT_POST, 1); if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $data); break; case "PUT": curl_setopt($curl, CURLOPT_PUT, 1); break; default: if ($data) $url = sprintf("%s?%s", $url, http_build_query($data)); } // Optional Authentication: curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_USERPWD, "XXX:XXX"); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); // $result = htmlentities($result); curl_close($curl); return $result; } echo '<pre>'; $data = CallAPI('GET', 'https://myurl.com'); // $oXML = new SimpleXMLElement($data); var_dump($data); echo '</pre>'; ?>