Convertir XML en tableau associatif en PHP

Convert Xml Associative Array Php



XML (Extensible Markup Language) est un type de langage de balisage utilisé pour stocker les données dans un format lisible par l'homme. Il est différent des autres langages de balisage. Chaque balise de ce langage est définie par l'utilisateur. L'utilisation de XML est la meilleure solution pour stocker une petite quantité de données lorsque vous ne souhaitez utiliser aucune base de données pour stocker des données. Les données du document XML sont facilement accessibles et utilisées dans n'importe quelle application Web à l'aide d'un script PHP. La façon dont le document XML peut être analysé et stocké dans un tableau associatif est illustrée dans ce didacticiel.

Fonctions nécessaires

Certaines fonctions intégrées sont utilisées pour convertir le contenu XML en un tableau PHP associatif. Les objectifs des différentes fonctions sont expliqués ci-dessous.







file_get_contents() :



Cette fonction renvoie les données de chaîne en convertissant toutes les données XML. Il prend n'importe quel nom de fichier XML comme argument.



simplexml_load_string() :





Cette fonction renvoie l'objet XML en convertissant les données de chaîne XML. Il prend des données de chaîne XML comme argument.

simplexml_load_file() :



Cette fonction renvoie l'objet XML en convertissant le contenu du fichier XML. Il prend le nom du fichier XML comme argument.

ÉlémentXMLE simple() :

Il est utilisé pour créer un objet XML à partir de données XML. Il prend la valeur du contenu XML comme argument.

json_encode() :

Il renvoie l'objet JSON en convertissant l'objet XML. Il prend la variable objet XML comme argument.

json_decode() :

Il renvoie le tableau PHP associatif en convertissant les données JSON. Il prend la variable objet JSON comme argument.

Créer un fichier XML

Vous devrez créer un fichier XML ou définir des données XML dans le script pour savoir comment convertir les données XML en un tableau PHP associatif. Créez un fichier XML nommé courses.xml avec le contenu suivant et stockez-le à l'emplacement où se trouve le script PHP. Le fichier contient des éléments enfants sous un élément parent. Ainsi, un tableau associatif à deux dimensions sera généré après la conversion du fichier XML suivant en un tableau PHP.

cours.xml

version='1.0'?>
>
>Programmation web>
>6 mois>
>
>
>La joie de la programmation PHP>
>Alain Forbes>
>Île aux prunes>
>
>
>PHP& MySQL Novice à Ninja
Tom Butler et Kevin Yank
SitePoint


Head First PHP & MySQL
Lynn Beighley & Michael Morrison
O'Reilly


Exemple-1 : convertir le contenu d'un fichier XML en un tableau associatif sans vérifier l'erreur

Le script suivant montre les utilisations des fonctions file_get_contents() et simplexml_load_string() pour créer un objet XML. Ici, le fichier courses.xml est utilisé pour la conversion qui a été créée auparavant. Ensuite, les fonctions json_encode() et json_decode() sont utilisées pour obtenir le tableau associatif après avoir converti le contenu du fichier XML. Si aucune erreur n'existe dans le contenu XML, aucune erreur ne sera affichée par le script suivant. Ici, |_+_| tag est utilisé pour imprimer le tableau de manière formatée.



//Définir le fichier XML existant
$xml = 'cours.xml';

//Lire le contenu complet du fichier XML sous forme de chaîne XML
$xmlData = file_get_contents ($xml);

//Convertir les données de chaîne XML en objet XML
$xmlObject = simplexml_load_string ($xmlData);

//Convertir l'objet XML en objet JSON
$jsonObjet = json_encode ($xmlObject);

//Convertir l'objet JSON en un tableau associatif
$assArray = json_decode ($jsonObjet, vrai);

//Imprime la structure du tableau associatif
chassèrent '
  
';

?>

Sortir:

La sortie suivante apparaîtra après l'exécution du script PHP. Ici, un tableau à deux dimensions est généré en fonction du contenu du fichier XML, courses.xml.

Exemple 2 : convertir le contenu d'un fichier XML en un tableau associatif avec une erreur de vérification

Il est préférable de vérifier l'erreur lors de la conversion de XML en un tableau associatif. Cela aidera le codeur à déboguer le code si la vérification des erreurs est implémentée dans le script. Le script suivant montre les moyens de convertir le contenu d'un fichier XML en un tableau associatif à l'aide de la fonction simplexml_load_file() avec gestion des erreurs. La fonction libxml_use_internal_errors() est utilisée avec la valeur TRUE pour activer la gestion des erreurs. Si le contenu du fichier XML utilisé dans le script contient une erreur, la fonction simplexml_load_file() renverra false et le message d'erreur sera imprimé en utilisant la fonction libxml_get_errors(). Si aucune erreur n'existe dans le fichier XML, le contenu du fichier sera converti correctement en un tableau associatif à deux dimensions.



//Activer la gestion des erreurs utilisateur
libxml_use_internal_errors (VRAI);

//Créer un objet XML
$ objXml = simplexml_load_file ('cours.xml');

// Erreur d'impression si l'objet XML renvoie false
si ($ objXml === FAUX) {
chassèrent « Des erreurs se sont produites lors de l'analyse du fichier XML. ';
pour chaque( libxml_get_errors () comme $ erreur) {
chassèrent $ erreur->un message;
}
sortir ;
}

//Convertir l'objet XML en objet JSON
$ objJson = json_encode ($ objXml);
//Convertir l'objet JSON en un tableau associatif
$assar = json_decode ($ objJson, VRAI);

//Imprime la structure du tableau associatif
chassèrent '
';  
print_r ($assArray);
echo '
'
;

?>

Sortir:

La sortie suivante apparaîtra après l'exécution du script PHP. Ici, aucune erreur n'existe dans le fichier XML. Ainsi, un tableau à deux dimensions a été généré comme dans l'exemple précédent basé sur le contenu du fichier XML, courses.xml.

Exemple-3 : convertir le contenu XML en un tableau associatif

Le script suivant montre comment convertir des données XML en un tableau associatif à l'aide de la fonction SimpleXMLElement(). Dans le script, le contenu XML est stocké dans une variable nommée $xml qui est utilisée comme argument de la fonction, SimpleXMLElement(). Ensuite, les fonctions json_encode() et json_decode() sont utilisées pour obtenir le tableau associatif après avoir converti le contenu du fichier XML.



//Définir la variable XML
$xml = <<


[email protégé]

12 / A, Dhanmondi
Dacca



[email protégé]

156, motif
Dacca



[email protégé]

21 / B, Mogbazar
Dacca



XML
;

//Créer un objet XML
$xmlObject = NouveauÉlémentXMLE simple($xml);
//Créer un objet JSON
$jsonObjet = json_encode ($xmlObject);
//Convertir l'objet JSON en un tableau associatif
$assArray = json_decode ($jsonObjet, vrai);

//Imprime la structure du tableau associatif
chassèrent '
';  
print_r ($assarr);
echo '
'
;

?>

Sortir:

La sortie suivante apparaîtra après l'exécution du script PHP. Ici, un tableau à deux dimensions est généré en fonction du contenu de la variable XML, $xml.

Conclusion:

Il y avait trois manières différentes de convertir le contenu XML en un tableau associatif qui a été montré dans ce didacticiel. Cela aidera les lecteurs à connaître la façon de travailler avec des données XML et d'analyser facilement les données du contenu XML en utilisant un script PHP.