Maison  >  Article  >  développement back-end  >  Comment convertir l'interface XML en tableau

Comment convertir l'interface XML en tableau

PHPz
PHPzoriginal
2023-04-26 09:07:31562parcourir

Avec le développement d'Internet, diverses interfaces deviennent de plus en plus importantes. Qu'il s'agisse d'échange de données entre entreprises ou d'intégration de données, il faut appeler des interfaces. Lors du processus d'appel de l'interface en PHP, il est souvent nécessaire de convertir le XML renvoyé par l'interface en tableau. Par conséquent, cet article expliquera comment appeler une interface en PHP et convertir du XML en tableau.

1. Méthode d'appel de l'interface

En PHP, la manière la plus courante d'appeler l'interface est d'utiliser la bibliothèque CURL. Vous pouvez utiliser la bibliothèque CURL pour effectuer facilement des requêtes HTTP, notamment GET, POST, PUT, DELETE et d'autres méthodes de requête. Supposons que nous devions appeler une interface qui renvoie des données au format XML. Le processus d'appel est le suivant : curl_init();# 🎜🎜#

    Définir l'adresse de la demande et la méthode de demande
curl_setopt($curl, CURLOPT_URL, "http://example.com/ api");# 🎜🎜#curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_POST, 1);

  1. Définir les paramètres du POST request
  2. #🎜 🎜#
$post_data = array(

'key' => 'value',
'key2' => 'value2'

);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);#🎜 🎜#
    Exécuter la requête et obtenir une réponse #curl_close($curl);
  1. Dans le code ci-dessus, $response est les données au format XML renvoyées par l'interface, et elles doivent ensuite être converti en tableau.

2. Méthode de conversion XML en tableau

Nous pouvons utiliser la bibliothèque SimpleXML intégrée de PHP pour convertir des données au format XML en objets ou en tableaux. L'utilisation est la suivante :

    Convertir les données au format XML en objets
$xml = simplexml_load_string($response);

print_r ( $xml);

  1. Convertir les données au format XML en tableau

$xml = simplexml_load_string($response);

$ json = json_encode($xml);

$array = json_decode($json, true);

print_r($array);

Dans le code ci-dessus, la fonction simplexml_load_string est d'abord utilisé pour convertir le XML Les données au format sont converties en un objet, puis json_encode est utilisé pour convertir l'objet en données au format JSON, puis json_decode est utilisé pour convertir les données au format JSON en un tableau, réalisant ainsi la conversion de XML en tableau.

3. Évitez les problèmes de format XML
  1. Dans la méthode ci-dessus, si le format XML renvoyé par l'interface n'est pas standardisé ou présente des problèmes, la conversion de la fonction simplexml_load_string échouera. Pour éviter cette situation, vous pouvez utiliser la bibliothèque DomDocument intégrée de PHP pour analyser les données au format XML. L'utilisation est la suivante :

Initialize DomDocument

    $doc = new DOMDocument();
  1. #🎜 🎜# Charger les données XML


$doc->loadXML($response);

Obtenir des éléments XML et les convertir en tableau#🎜🎜 ## 🎜🎜#

$result = array();

foreach ($doc->getElementsByTagName("*") as $node) {

//如果元素没有子元素,就获取元素值
if (!$node->hasChildNodes()) {
    $result[$node->nodeName] = $node->nodeValue;
} else {

    //否则,递归获取子元素
    foreach ($node->childNodes as $childNode) {
        if ($childNode->nodeType != XML_TEXT_NODE) {
            $result[$node->nodeName][] = array(
                $childNode->nodeName => $childNode->nodeValue
            );
        }
    }
}
}#🎜 🎜#

print_r($result);

    Dans le code ci-dessus, nous créons un objet DOMDocument et utilisons la fonction loadXML pour charger des données au format XML dans le DOM. Ensuite, nous utilisons la fonction getElementsByTagName pour obtenir des éléments XML et obtenir des sous-éléments de manière récursive. De cette façon, les échecs de conversion dus à des problèmes de format XML peuvent être évités.
  1. 4. Résumé

Cet article présente la méthode d'appel de l'interface en PHP et de conversion des données au format XML en tableau. En utilisant la bibliothèque CURL, vous pouvez facilement effectuer des requêtes HTTP ; en utilisant la bibliothèque SimpleXML ou DomDocument, vous pouvez convertir des données au format XML en un tableau ou un objet. L'utilisation de la bibliothèque DomDocument permet de mieux éviter les échecs de conversion causés par des problèmes de format XML. Nous espérons que cet article pourra apporter une aide aux problèmes rencontrés par les développeurs PHP lors du processus d'appel de l'interface.

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