PHP Convert XML to JSON

How to Convert XML to JSON in PHP

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

xml convert to json using json json_encode and json_decode. it is very easy way to convert xml to json.

	$xml_string = "
    HEllo every one to onlinecode;

	$xml_data     = simplexml_load_string($xml_string);
	$json_data    = json_encode($xml_data);
	$array_result = json_decode($json_data,TRUE);

Method – 2

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 jaon.

$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)
} 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) );
$string_xml = simplexml_load_string( $xml_object->saveXML() );
$json_data = json_decode( json_encode( $string_xml ) ) );

Leave a Comment

Your email address will not be published. Required fields are marked *

7  +  1  =  

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US