Maison  >  Article  >  développement back-end  >  Comment convertir un tableau au format XML en php

Comment convertir un tableau au format XML en php

PHPz
PHPzoriginal
2023-04-19 11:39:08677parcourir

PHP est un langage de programmation populaire souvent utilisé pour développer des applications Web. XML est également un format fréquemment utilisé dans les applications Web. La conversion des tableaux PHP au format XML permet d'échanger et de partager des données entre différents logiciels.

Dans cet article, nous allons montrer comment convertir un tableau relativement simple au format XML à l'aide de PHP.

L'idée principale est de convertir chaque élément du tableau en un élément XML et de convertir les attributs et les valeurs de l'élément en attributs et valeurs XML. Nous pouvons utiliser une approche récursive pour gérer les tableaux imbriqués.

Tout d'abord, nous allons définir le tableau que nous voulons convertir :

$data = array(
  "book" => array(
    "title" => "Learning PHP",
    "author" => "David Sklar",
    "publisher" => "O'Reilly Media",
    "edition" => "4th",
    "year" => 2014
  )
);

Maintenant, nous devons écrire une fonction pour convertir ce tableau en XML. Voici le code de la fonction :

function array_to_xml($array, &$xml) {
  foreach ($array as $key => $value) {
    if (is_array($value)) {
      if (is_numeric($key)) {
        $key = 'item' . $key; 
      }
      $subnode = $xml->addChild($key);
      array_to_xml($value, $subnode);
    } else {
      $xml->addChild($key, htmlspecialchars($value));
    }
  }
}

La fonction s'appelle array_to_xml et la fonction sera passée dans le tableau à convertir ainsi qu'une référence à l'objet document XML utilisé pour stocker le XML.

La fonction crée des nœuds XML selon les besoins en parcourant chaque élément du tableau et en vérifiant le type de l'élément (tableau ou type chaîne/nombre).

Si un élément est de type tableau, cette fonction est appelée de manière récursive et le nœud enfant est ajouté au nœud actuel.

S'il s'agit d'un élément de type chaîne/numérique, il est ajouté directement au nœud actuel.

Dans cet exemple, le nom du nœud de premier niveau est "book", nous allons donc utiliser un objet document XML pour créer un nœud racine nommé "book" :

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

Ensuite, nous appelons la fonction array_to_xml pour convertir le tableau en XML et ajouter au document XML :

array_to_xml($data, $xml);

Enfin, nous allons afficher le document XML :

echo $xml->asXML();

Le code complet est le suivant :

$data = array(
  "book" => array(
    "title" => "Learning PHP",
    "author" => "David Sklar",
    "publisher" => "O'Reilly Media",
    "edition" => "4th",
    "year" => 2014
  )
);

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

function array_to_xml($array, &$xml) {
  foreach ($array as $key => $value) {
    if (is_array($value)) {
      if (is_numeric($key)) {
        $key = 'item' . $key; 
      }
      $subnode = $xml->addChild($key);
      array_to_xml($value, $subnode);
    } else {
      $xml->addChild($key, htmlspecialchars($value));
    }
  }
}

array_to_xml($data, $xml);

echo $xml->asXML();

La sortie après l'exécution du code est la suivante :

<book>
  <title>Learning PHP</title>
  <author>David Sklar</author>
  <publisher>O'Reilly Media</publisher>
  <edition>4th</edition>
  <year>2014</year>
</book>

Comme cela peut être vu le code ci-dessus, la conversion d'un tableau en XML avec PHP est un processus relativement simple et peut être facilement réalisé tant que vous êtes familier avec la structure de XML et les fonctions associées en PHP. Vous pouvez ajuster le code correspondant en fonction des besoins réels pour générer un document XML qui vous convient.

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