Friday, March 29, 2019

Convert PHP to XML || How to convert array to SimpleXML in PHP

Many times need to store the data as a XML format into the database or into the file for later use. To fulfill this requirement need to convert data to XML and save XML file.
The SimpleXML extension functions provides the tool set to convert XML to an object. Those objects deals with normal property selectors and array iterators.

<?php
// Code to convert php array to xml document
// Define a function that converts array to xml.
function arrayToXml($array, $rootElement = null, $xml = null) {
$_xml = $xml;
// If there is no Root Element then insert root
if ($_xml === null) {
$_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : '<root/>');
}
// Visit all key value pair
foreach ($array as $k => $v) {
// If there is nested array then
if (is_array($v)) {
// Call function for nested array
arrayToXml($v, $k, $_xml->addChild($k));
}
else {
// Simply add child element.
$_xml->addChild($k, $v);
}
}
return $_xml->asXML();
}
// Creating an array for demo
$my_array = array (
'name' => 'GFG',
'subject' => 'CS',
// Creating nested array.
'contact_info' => array (
'city' => 'Noida',
'state' => 'UP',
'email' => 'feedback@geeksforgeeks.org'
),
);
// Calling arrayToxml Function and printing the result
echo arrayToXml($my_array);
?>

Output:

<?xml version="1.0"?>
<root>
    <name> GFG </name>
    <subject> CS </subject>
    <contact_info >
        <city > Noida < /city >
        <state > UP < /state >
        <email > feedback@geeksforgeeks.org </email>
    <contact_info> 
<root>
 
Note: If the system generate error of type :PHP Fatal error: Uncaught Error: Class ‘SimpleXMLElement’ not found in /home/6bc5567266b35ae3e76d84307e5bdc78.php:24 then simply install php-xml, php-simplexml packages.

No comments:

Post a Comment