In this post we will show you how to convert xml to json in php. we will show you different method for xml convert to json in php.
Method β 1: xml2json php
xml convert to json using json json_encode and json_decode. it is very easy way to Convert XML to JSON in PHP.
Json & Array from XML in 3 lines:
$xml = simplexml_load_string($xml_string); $json = json_encode($xml); $array = json_decode($json,TRUE);
Method β 2 : php xml to associative array
convert xml to json using json json_encode and json_decode but using xml file. it is very easy way to convert xml to json. pass your url url and convert it in to json.
$xml_file = fopen("books-xml.xml", "r") or die("Unable to open this books-xml.xml file!!"); $get_xml_string = fread($xml_file,filesize("books-xml.xml")); // convert string of XML(xml file data) into an object $xml_data = simplexml_load_string($get_xml_string); // xml to json convert $json_data = json_encode($xml_data); // convert json to array $array_data = json_decode($json_data,TRUE);
Method β 3
In this method we use XmlToJson class and json_prepare_xml function to convert xml to json.
// assign class Xml To Json class XmlToJson { public function json_prepare_xml ($xml_url) { $get_file_contents= file_get_contents($xml_url); $get_file_contents = str_replace(array("\n", "\r", "\t"), '', $get_file_contents); $get_file_contents = trim(str_replace('"', "'", $get_file_contents)); $get_simple_xml = simplexml_load_string($get_file_contents); $json_data = json_encode($get_simple_xml); // return json return $json_data; } } $json_data = XmlToJson::json_prepare_xml("books-xml.xml");
Method β 4
A common pitfall is to forget that json_encode() doesnβt respect elements/data with a textvalue and attribute(s). itβll select one in all those, that means dataloss. The operate below solves that downside. If one decides to travel for the json_encode/decode method, the subsequent operate is suggested.
function json_prepare_xml($xml_object) { foreach($xml_object->childNodes as $xml_val) { if($xml_val->hasChildNodes()) { json_prepare_xml($xml_val); } else { if($xml_object->hasAttributes() && strlen($xml_object->nodeValue)){ $xml_object->setAttribute("nodeValue", $xml_val->textContent); $xml_val->nodeValue = ""; } } } } $xml_url = "books-xml.xml"; $xml_object = new DOMDocument(); $xml_object->loadXML( file_get_contents($xml_url) ); json_prepare_xml($xml_object); $string_xml = simplexml_load_string( $xml_object->saveXML() ); $json_data = json_decode( json_encode( $string_xml ) ) );