Maison >développement back-end >Problème PHP >Comment convertir php json au format XML

Comment convertir php json au format XML

PHPz
PHPzoriginal
2023-03-31 09:06:27959parcourir

PHP est un langage de script largement utilisé dans le développement Web. Parmi eux, les formats JSON et XML sont largement utilisés dans les applications Web. La conversion du format JSON au format XML en PHP est également une compétence très utile. Cet article explique comment convertir JSON en XML en PHP.

1. Introduction aux formats JSON et XML

JSON est l'abréviation de JavaScript Object Notation. Il s'agit d'un format d'échange de données léger couramment utilisé pour transmettre des données sur le réseau. JSON est une structure de données composée de paires clé-valeur, facile à lire et à écrire. Elle prend en charge plusieurs langages de programmation pour l'analyse et la génération. Elle est simple et intuitive, contient une petite quantité de données et est facile à analyser. .

XML est l'abréviation de Extensible Markup Language, un langage de balisage similaire au HTML qui peut être utilisé pour stocker et transmettre des données. Les données XML contiennent des balises de début, des balises de fin et des données entre elles. XML est un format extensible qui prend en charge les balises définies par l'utilisateur et est donc plus flexible, mais son efficacité d'analyse est relativement faible et la quantité de données est importante.

2. Comment convertir JSON en XML

En PHP, pour convertir JSON en XML, vous pouvez utiliser les fonctions SimpleXMLElement et json_decode. SimpleXMLElement est une classe intégrée à PHP utilisée pour créer et manipuler des objets de document XML. La fonction json_decode est utilisée pour décoder les données au format JSON en tableaux ou objets PHP.

Ce qui suit est un exemple de code :

$json_str = '{
      "name":"John Smith",
      "age":32,
      "email":"johnsmith@example.com"
    }';

    $json_obj = json_decode($json_str); // 将json字符串解析为对象
    $xml_obj = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><data></data>'); // 创建XML对象

    function add_node($obj, $parent)
    {
        foreach ($obj as $key => $value) {
            $node = $parent->addChild(is_numeric($key)? "item":"$key"); // 创建XML元素,并设置元素名
            if(is_object($value) || is_array($value)) { // 判断值类型,如果是数组或对象类型,递归创建XML元素
                add_node($value, $node);
            } else {
                $node->addChild("value",$value); // 创建值元素
            }
        }
    }

    add_node($json_obj, $xml_obj); // 将json节点转化为XML元素

    $xml_str = $xml_obj->asXML(); // 将XML对象转化为XML字符串

    echo $xml_str;

Dans le code, une chaîne $json_str est d'abord définie, qui contient un objet de données JSON. Utilisez ensuite la fonction json_decode pour convertir $json_str en un objet JSON $json_obj. Ensuite, créez l'objet XML $xml_obj via la nouvelle fonction SimpleXMLElement.

Afin de convertir l'objet JSON en XML, la fonction add_node ci-dessous utilise une méthode récursive pour convertir chaque nœud de valeur JSON en nœud XML et l'ajouter à l'objet XML. Lorsqu'elle rencontre un nœud de type objet ou tableau, la fonction s'appellera de manière récursive, convertira le nœud en élément XML et l'ajoutera à l'élément XML correspondant à l'objet $xml_obj.

Enfin, obtenez le format de chaîne XML de l'objet XML créé via la méthode asXML, imprimez-le et convertissez-le en sortie de chaîne.

3. Résumé

Avec le code ci-dessus, nous pouvons facilement convertir les données JSON en PHP en données XML. Il convient de noter que pendant le processus de conversion, le type de données doit être déterminé afin de sélectionner différents éléments à créer, et la conversion de nœuds est effectuée de manière récursive afin que les types de données tels que les tableaux et les objets puissent être parcourus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn