Home  >  Article  >  Backend Development  >  How to write array to xml in php

How to write array to xml in php

PHPz
PHPzOriginal
2023-04-18 09:05:44520browse

PHP is a very popular programming language that is used for web development, desktop applications, and more. PHP can easily store data as arrays, but sometimes you need to store arrays as XML.

This article will explain how to use PHP to write an array to an XML file. First, let's understand what XML is and why we need to store data as XML.

XML, short for Extensible Markup Language, is a commonly used data format because it uses a unique markup structure to describe data. It is similar to HTML, but XML is primarily used to describe data rather than display it.

XML has the following advantages:

  1. It is cross-platform and can share data between different systems and programs.
  2. It is flexible and can easily parse and modify data.
  3. It can be easily extended as you can define your own tags for your data.

In PHP, you can use the SimpleXML extension to create XML documents and import array data into them. Below are the steps to write an array to an XML file.

Step 1: Create an Array

First, let’s create an array so that we can write it to an XML file. Here is a sample array:

$data = array(
    array(
        'name' => 'John',
        'age' => 30,
        'email' => 'john@example.com'
    ),
    array(
        'name' => 'Jane',
        'age' => 25,
        'email' => 'jane@example.com'
    ),
    array(
        'name' => 'Bob',
        'age' => 40,
        'email' => 'bob@example.com'
    )
);

This array contains 3 subarrays, each with a name, age, and email address.

Step 2: Create an XML file

Next, we need to create an XML file. You can create XML documents using the SimpleXMLElement class in the SimpleXML extension. Here is a sample code to create an XML file:

$xml = new SimpleXMLElement('<root/>');

This code will create an element named root and assign it to the variable $xml.

Step 3: Write the array to an XML file

Now we can use a for loop to iterate through the array and write each sub-array to an XML file. Here is sample code for writing an array to an XML file:

foreach ($data as $row) {
    $item = $xml->addChild('item');
    foreach ($row as $key => $value) {
        $item->addChild($key, $value);
    }
}

This code iterates through each subarray and creates an element named item, then creates a subelement for each key value in the subarray. For example, in a subarray where the name key maps to the value 'John', a subelement named name will be created under the item element and contain the value 'John'.

Step 4: Save the XML file

Finally, we need to save the XML file to the server or local computer. You can use the asXML() method in the SimpleXMLElement class to save an XML file as a string and print it in the browser, or to save it to a file. Here is sample code that saves an XML file to your hard drive:

$xml->asXML('data.xml');

This code saves the XML file in the same directory as the script and names it data.xml.

Full sample code

The following is the complete sample code for writing an array to an XML file:

$data = array(
    array(
        'name' => 'John',
        'age' => 30,
        'email' => 'john@example.com'
    ),
    array(
        'name' => 'Jane',
        'age' => 25,
        'email' => 'jane@example.com'
    ),
    array(
        'name' => 'Bob',
        'age' => 40,
        'email' => 'bob@example.com'
    )
);

$xml = new SimpleXMLElement('<root/>');

foreach ($data as $row) {
    $item = $xml->addChild('item');
    foreach ($row as $key => $value) {
        $item->addChild($key, $value);
    }
}

$xml->asXML('data.xml');

This code will create a file named data.xml and add it in Which creates the following:

<root>
    <item>
        <name>John</name>
        <age>30</age>
        <email>john@example.com</email>
    </item>
    <item>
        <name>Jane</name>
        <age>25</age>
        <email>jane@example.com</email>
    </item>
    <item>
        <name>Bob</name>
        <age>40</age>
        <email>bob@example.com</email>
    </item>
</root>

Conclusion

Array data can be easily stored as XML files using the SimpleXML extension. Storing as XML can be a very useful option when you need to share data across platforms. Hope this article helps you!

The above is the detailed content of How to write array to xml in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn