Maison >développement back-end >tutoriel php >PHP XML dans un tableau

PHP XML dans un tableau

王林
王林original
2024-08-29 13:09:581088parcourir

Nous l'utilisons pour convertir un document XML en un tableau PHP. Parfois, nous devons gérer le document XML en tant que données entrantes ou exporter des données en tant que document XML. Le langage XML est utilisé pour structurer le partage de données entre sites Web ou applications. Ainsi, il fournit une opération XML vers tableau pour fonctionner en douceur avec les données XML.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Lors de la conversion, nous devons utiliser certaines fonctions mentionnées ci-dessous –

  • Fonction file_get_contents() : Cette fonction lit un fichier sous forme de chaîne.
  • Fonction simplexml_load_string() : Cette fonction est utilisée pour analyser un XML et renvoyer un objet.
  • Fonction json_encode() : Cette fonction encode une chaîne JSON et renvoie la valeur JSON.
  • Fonction json_decode() : Cette fonction décode une chaîne JSON (variable PHP).

Fonctionnement du PHP XML dans un tableau

Il accepte le document XML et le convertit en tableau. Supposons que nous ayons un document XML sous le nom ExXMl.xml ; maintenant, nous voulons le convertir en tableau. Donc, pour convertir, nous devons suivre quelques étapes –

  1. Importez un fichier ExXMl.xml dans PHP à l'aide de la fonction file_get_content(), afin qu'il lise le fichier ExXMl.xml sous forme de chaîne et le stocke dans une variable.
  2. Ensuite, les données de chaîne lues doivent être converties en objet à l'aide de la fonction simplexml_load_string().
  3. Enfin, utilisez la fonction json_decode() pour décoder la chaîne json, qui convertit la chaîne codée json en un tableau.

Exemples

Exemple pour charger un fichier XML et le convertir en tableau PHP –

Exemple n°1

Tout d'abord, nous créons le fichier de données XML sous le nom « ExXML.xml » et créons le contenu des données sous la forme –

Code :

<?xml version="1.0" encoding="utf-8"?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<subject> English </subject>
</firstname>
<firstname name='Sam'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<subject> English </subject>
</firstname>
<firstname name='Praveen'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next,we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read XML file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

Sortie :

PHP XML dans un tableau

Toutes les balises d'ouverture et de fermeture sont correctes. Ensuite, l'objet chargé encode et décode sous forme de tableau PHP à l'aide des fonctions json_encode () et json_decode(), respectivement.

Exemple n°2

Un exemple de rencontre et d'erreurs d'analyse-

Ensuite, nous écrivons le code PHP pour comprendre le XML PHP dans un tableau, où nous verrons les erreurs d'analyse survenues lors de l'exécution du XML dans un tableau en raison d'une incompatibilité de balise XML ou d'une structure mal structurée, comme ci-dessous –

Code :

<?xml version='1.0'?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<!-- missing -->
</firstname>
<firstname name='Sanjay'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<!-- mismatch tag -->
<subject> English <subject>
</firstname>
<firstname name='Parvez'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next, we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// check xml load or not
if ($obj == FALSE) {
echo "There were errors to parse the XML file.\n";
exit;
}
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

Sortie :

PHP XML dans un tableau

L'une des balises d'ouverture et de fermeture ne correspond pas et l'une des balises est manquante (comme mentionné dans le fichier XML avec la balise de commentaire).  Les avertissements se produisent lors de l'analyse et du chargement du fichier XML, comme le montre le résultat ci-dessus. Alors, en lisant les avertissements, corrigez le fichier XML et chargez-le à nouveau.

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
Article précédent:Analyseur XML PHPArticle suivant:Analyseur XML PHP