XML (Extensible Markup Language) is a common markup language which is used in web applications to read and write dynamic data. When we have issue with database size to store dynamic data then XML file format is the best to store dynamic data and retrieve according to needs.
So if you’re thinking about storing your web application data into XML instead of database then you’re here right place. In our previous tutorial you have learned how to convert XML into associative array in PHP. n this tutorial you will learn how to write your dynamic data to XML file for further use.
Also, read:
- Convert XML into Associative Array in PHP
- Converting an Array to JSON in PHP
- Converting JSON to Array or Object in PHP
Here in this tutorial we will data in associative array and we will create XML data from associative array and write to XML file.
Create XML from Associative Array in PHP
Here we will learn how to create XML data from associative array.
Step1: Write XML Data File from Associative Array
First we will create a function createXMLFile() to implement functionality to create XML from associative array. We will use PHP library class DOMDocument() to create XML data and save into XML file. We will create directory XML_FILE in project folder to store XML file.
<?php function createXMLFile($empData) { $title = $empData['title']; $totalEmployee = count($empData['employee']); $xmlDocument = new DOMDocument(); $root = $xmlDocument->appendChild($xmlDocument->createElement("employee_details")); $root->appendChild($xmlDocument->createElement("title",$title)); $root->appendChild($xmlDocument->createElement("totalEmployee",$totalEmployee)); $empRecords = $root->appendChild($xmlDocument->createElement('emp_records')); foreach($empData['employee'] as $employee){ if(!empty($employee)){ $empRecord = $empRecords->appendChild($xmlDocument->createElement('employee')); foreach($employee as $key=>$val){ $empRecord->appendChild($xmlDocument->createElement($key, $val)); } } } $fileName = str_replace(' ', '_',$title).'_'.time().'.xml'; $xmlDocument->formatOutput = true; $xmlDocument->save("XML_FILE/" . $fileName); } ?>
Step2: Store Data into Associative Array
We will create associative array as $empData to convert array data to XML data.
$empData = array( 'title' => 'Employee Details', 'employee' => array( array('name' => 'William Smith', 'email' => 'william@phpzag.com'), array('name' => 'Andy Flower', 'email' => 'andy@phpzag.com'), array('name' => 'Cris Jhon', 'email' => 'jhon@phpzag.com') ) );
Step3: Convert Associative Array onto XML
Now we will call function createXMLFile() and pass associative array $empData to convert into XML file. The file will be stored into XML_FILE directory.
echo createXMLFile($empData);
The above code will create the following XML data.
<?xml version="1.0"?> <employee_details> <title>Employee Details</title> <totalEmployee>3</totalEmployee> <emp_records> <employee> <name>William Smith</name> <email>william@phpzag.com</email> </employee> <employee> <name>Andy Flower</name> <email>andy@phpzag.com</email> </employee> <employee> <name>Cris Jhon</name> <email>jhon@phpzag.com</email> </employee> </emp_records> </employee_details>
You may also like:
- Working with php.ini file Configuration
- Control Statements in PHP
- Convert XML into Associative Array in PHP
- Using Prepared Statement with PHP & MySQL
- How to Upload File in PHP
- Converting an Array to JSON in PHP
- Converting JSON to Array or Object in PHP
- Manipulating PHP arrays: push, pop, shift, unshift
- Remove Repeated Words From String in PHP
- Converting a PHP Array to a Query String
- 15+ regular expressions for PHP developers
- 10 Most Important Directory Functions in PHP
- 10 little known but useful PHP functions
- PHP Script to Download Large Files Reliably