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

Comment convertir un tableau php au format XML

PHPz
PHPzoriginal
2023-04-23 17:49:281137parcourir

En PHP, la conversion entre tableaux et données XML est très courante. Cet article vous présentera plusieurs façons de convertir des tableaux PHP au format XML.

  1. Construire manuellement du XML

Tout d'abord, nous pouvons le convertir en construisant manuellement du XML. Plus précisément, nous pouvons utiliser l'extension DOM de PHP pour créer un objet DOM selon la structure du document XML, puis insérer les données du tableau dans le nœud correspondant. Voici un exemple simple :

<?php
$my_array = array(
  &#39;person&#39; => array(
    'name' => 'Jack',
    'age' => 30,
    'email' => 'jack@example.com',
  ),
);

$doc = new DOMDocument();
$root = $doc->createElement('root');
$doc->appendChild($root);

function array_to_xml($data, &$xml) {
  foreach($data as $key => $value) {
    if(is_array($value)) {
      $subnode = $xml->createElement($key);
      $xml->appendChild($subnode);
      array_to_xml($value, $subnode);
    } else {
      $xml->appendChild($xml->createElement($key,$value));
    }
  }
}

array_to_xml($my_array, $root);
echo $doc->saveXML();
?>
  1. Using SimpleXML

PHP fournit également un moyen encore plus simple de convertir des tableaux associatifs directement en XML à l'aide de l'extension SimpleXML. Voici l'exemple de code :

<?php
$my_array = array(
  &#39;person&#39; => array(
    'name' => 'Jack',
    'age' => 30,
    'email' => 'jack@example.com',
  ),
);

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

function array_to_xml($data, &$xml) {
  foreach($data as $key => $value) {
    if(is_array($value)) {
      array_to_xml($value, $xml->addChild($key));
    } else {
      $xml->addChild("$key",htmlspecialchars("$value"));
    }
  }
}

array_to_xml($my_array, $xml);
echo $xml->asXML();
?>
  1. Utilisation de XMLWriter

Une alternative consiste à utiliser l'extension XMLWriter. XMLWriter peut nous aider à contrôler plus finement le processus de création de fichiers XML. Voici l'exemple de code :

<?php
$my_array = array(
  &#39;person&#39; => array(
    'name' => 'Jack',
    'age' => 30,
    'email' => 'jack@example.com',
  ),
);

$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument('1.0','UTF-8');
$xml->startElement('root');

function array_to_xml($data, &$xml) {
  foreach($data as $key => $value) {
    if(is_array($value)) {
      $xml->startElement($key);
      array_to_xml($value, $xml);
      $xml->endElement();
    } else {
      $xml->writeElement($key, $value);
    }
  }
}

array_to_xml($my_array, $xml);
$xml->endElement();
echo $xml->outputMemory(TRUE);
?>

Résumé

Les trois méthodes ci-dessus permettent de convertir un tableau PHP en XML. La construction manuelle de XML est la méthode la plus fastidieuse, mais c'est aussi la plus flexible, permettant un contrôle précis sur le processus de création XML. SimpleXML est une option plus simple qui convertit les tableaux associatifs directement au format XML. XMLWriter peut nous aider à contrôler plus finement le processus de création de fichiers XML. En fonction des besoins réels, vous pouvez choisir une ou plusieurs de ces méthodes pour convertir les tableaux aux formats XML.

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