This post show how to convert XML to JSON using PHP code.

json_encode() function converts valid XML to JSON

Following is example:

In this example, we have an empty data.json file and a data.xml with the following content

data.xml

<staff>
    <employee>
        <name id="1">Alice</name>
        <dob>January 1, 2000</dob>
    </employee>
    <employee>
        <name id="2">Bob</name>
        <dob>December 31, 2000</dob>
    </employee>
</staff>

The following code will read this XML file, generate JSON and output it to data.json file.

<?php
    $myJSON =  fopen("data.json", "w");
    $myXML = simplexml_load_file("data.xml");
    fwrite($myJSON, json_encode($myXML));
    fclose($myJSON);
?>

Line 1: opens data.json file with “w” option meaning you can write content to it

Line 2: opens data.xml file and loads its data. Note the use of simple_load_file() function.

Line 3: converts XML to JSON and writes the JSON into data.json file. Note the use of json_encode() function to convert data.

Line 4: closes data.json file for writing

data.json

{
    "staff": {
        "employee": [
            {
                "name": {
                    "-id": "1",
                    "#text": "Alice"
                },
                "dob": "January 1, 2000"
            },
            {
                "name": {
                    "-id": "2",
                    "#text": "Bob"
                },
                "dob": "December 31, 2000"
            }
        ]
    }
}