During the development process, data format conversion is a common problem. In PHP, the two commonly used data formats are JSON and XML. JSON is a lightweight data exchange format that is easy to read and write, while XML is an extensible markup language that is widely used in Web data transmission and configuration file storage.
This article will introduce how to convert JSON format to XML format in PHP.
1. JSON to XML
PHP provides the function json_decode() that can be used to convert JSON data into XML format. The syntax is as follows:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Among them, $json represents the JSON string to be converted, $assoc represents whether to convert the JSON object into an associative array (default is false), $depth represents the maximum recursion depth (default is 512 ), $options represents conversion options (default is 0).
The following is an example of converting a JSON array into XML:
<?php // JSON数据 $json_data = '{ "students": [ { "name": "David", "age": 20, "score": { "English": 90, "Math": 85, "Chinese": 95 } }, { "name": "Tom", "age": 22, "score": { "English": 80, "Math": 75, "Chinese": 85 } } ] }'; // 将JSON数据转换成PHP数组 $php_data = json_decode($json_data, true); // 将PHP数组转换成XML格式 $xml_data = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><data></data>'); array_to_xml($php_data, $xml_data); // 输出XML格式数据 header('Content-type: text/xml'); echo $xml_data->asXML(); // 将数组转换成XML格式的函数 function array_to_xml($arr, &$xml) { foreach ($arr as $key => $value) { if (is_array($value)) { if (!is_numeric($key)) { $subnode = $xml->addChild("$key"); array_to_xml($value, $subnode); } else { array_to_xml($value, $xml); } } else { $xml->addChild("$key", htmlspecialchars("$value")); } } } ?>
The above code first converts the JSON string into a PHP array, and then uses a recursive function to convert the PHP array into XML format.
The output XML format data is as follows:
<?xml version="1.0" encoding="UTF-8"?> <data> <students> <name>David</name> <age>20</age> <score> <english>90</english> <math>85</math> <chinese>95</chinese> </score> 0> <name>Tom</name> <age>22</age> <score> <english>80</english> <math>75</math> <chinese>85</chinese> </score> 1> </students> </data>
2. XML to JSON
To convert XML format to JSON format, you need to convert XML to PHP array first, and then Use the json_encode() function to convert a PHP array into a JSON string. The following is an example of converting XML to JSON:
<?php // XML数据 $xml_data = '<?xml version="1.0" encoding="UTF-8"?> <data> <students> <name>David</name> <age>20</age> <score> <english>90</english> <math>85</math> <chinese>95</chinese> </score> 0> <name>Tom</name> <age>22</age> <score> <english>80</english> <math>75</math> <chinese>85</chinese> </score> 1> </students> </data>'; // 将XML数据转换成PHP数组 $php_data = xml_to_array(simplexml_load_string($xml_data)); // 将PHP数组转换成JSON字符串 $json_data = json_encode($php_data); // 输出JSON格式数据 header('Content-type: text/json'); echo $json_data; // 将XML数据转换成PHP数组的函数 function xml_to_array($xml) { $arr = array(); foreach ($xml->children() as $element) { if (count($element->children()) == 0) { $arr[$element->getName()] = strval($element); } else { $arr[$element->getName()][] = xml_to_array($element); } } return $arr; } ?>
The above code first converts the XML string into a SimpleXMLElement object through the simplexml_load_string() function, and then converts the SimpleXMLElement object into a PHP array through the recursive function. Finally, use the json_encode() function to convert the PHP array into a JSON string.
The output JSON format data is as follows:
{ "students": [ { "name": "David", "age": "20", "score": { "English": "90", "Math": "85", "Chinese": "95" } }, { "name": "Tom", "age": "22", "score": { "English": "80", "Math": "75", "Chinese": "85" } } ] }
Summary
PHP provides convenient functions for converting JSON format to XML format and XML format to JSON format. During the development process, choosing the appropriate data format for storage and exchange based on actual needs can achieve better data transmission and reading effects.
The above is the detailed content of Introducing JSON and XML format conversion in PHP. For more information, please follow other related articles on the PHP Chinese website!

This article explores efficient PHP array deduplication. It compares built-in functions like array_unique() with custom hashmap approaches, highlighting performance trade-offs based on array size and data type. The optimal method depends on profili

This article analyzes PHP array deduplication, highlighting performance bottlenecks of naive approaches (O(n²)). It explores efficient alternatives using array_unique() with custom functions, SplObjectStorage, and HashSet implementations, achieving

This article explores PHP array deduplication using key uniqueness. While not a direct duplicate removal method, leveraging key uniqueness allows for creating a new array with unique values by mapping values to keys, overwriting duplicates. This ap

This article details implementing message queues in PHP using RabbitMQ and Redis. It compares their architectures (AMQP vs. in-memory), features, and reliability mechanisms (confirmations, transactions, persistence). Best practices for design, error

This article examines current PHP coding standards and best practices, focusing on PSR recommendations (PSR-1, PSR-2, PSR-4, PSR-12). It emphasizes improving code readability and maintainability through consistent styling, meaningful naming, and eff

This article explores optimizing PHP array deduplication for large datasets. It examines techniques like array_unique(), array_flip(), SplObjectStorage, and pre-sorting, comparing their efficiency. For massive datasets, it suggests chunking, datab

This article details installing and troubleshooting PHP extensions, focusing on PECL. It covers installation steps (finding, downloading/compiling, enabling, restarting the server), troubleshooting techniques (checking logs, verifying installation,

This article explains PHP's Reflection API, enabling runtime inspection and manipulation of classes, methods, and properties. It details common use cases (documentation generation, ORMs, dependency injection) and cautions against performance overhea


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Linux new version
SublimeText3 Linux latest version

SublimeText3 Chinese version
Chinese version, very easy to use

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Mac version
God-level code editing software (SublimeText3)
