Table des matières
Avant de nous plonger dans la partie technique de la création de ces documents, nous devons d'abord comprendre ce qu'est un fichier. XML, et quelles sont ses applications réelles et actuelles, de cette manière nous pourrons apprécier beaucoup plus les connaissances que nous pouvons acquérir dans cette section.Qu'est-ce qu'un fichier XML ?Beaucoup d'entre vous savent sûrement déjà qu'il s'agit d'un fichier XMLCependant, pour ceux qui ne le connaissent pas ou c'est la première fois qu'ils voient ce terme, nous allons expliquer un peu son concept. XML est un langage de balisage et de marquage très similaire à HTML qui nous permet d'organiser le contenu dans un document. Il est composé d'étiquettes et d'entités, et nous devons suivre plusieurs règles lors de sa génération.
Vous penserez sûrement que je décris le HTML aussi, et pourquoi nous n'utilisons pas cette dernière au lieu de créer une nouvelle langue, parce que tout simplement parce que la XML il est plus strict et plus personnalisable, c'est pourquoi il est beaucoup plus flexible à utiliser et plus facile à comprendre. Les étiquettes sur HTML sont déjà définis dans votre norme, à la place un XML les étiquettes sont créées par nos soins selon les règles de la langue.
Au début du tutoriel, nous avons mentionné l'une des applications les plus connues de la XML et c'est d'organiser le contenu pour qu'il puisse être consommé par les applications, c'est ce qui est essentiellement demandé. Lors de l'organisation d'un document XML nous pouvons faire ce qu'on appelle un analyser, ce qui n'est rien de plus que de lire le fichier et s'il suit la norme, nous pourrons connaître sa structure et ainsi traiter ledit contenu dans notre programme.
Dans un contexte réel, le XML peut être utilisé pour transmettre des données via un service Web ou pour restaurer et importer des données dans un Base de données. Comme on peut le voir, il s'agit d'un format de portabilité, c'est-à-dire de transporter des données d'une plateforme à une autre. Il fonctionne également au sein de la même plate-forme, par exemple un fichier de configuration où chaque étiquette correspond à des paramètres que notre application lit pour générer un comportement adéquat.
Bien qu'au cours des deux dernières années, le format JSON a gagné en popularité dans les environnements Web, et a sans doute gagné en popularité sur le XML, en réalité il n'en est pas ainsi puisque chacun a son espace, l'avantage de JSON c'est qu'il est originaire de Javascript et avec les nouvelles façons de travailler avec cette langue, la conversion est pratiquement inutile.
Cependant dans d'autres environnements tels que les applications de bureau, les langages de serveur autres que Javascript et des applications qui sont sur le marché depuis longtemps, XML c'est une option valable et largement utilisée.
Comme toujours tout dépend de nos besoins, on peut dire que ni l'un ni l'autre JSON ni XML ils sont mauvais, chacun a simplement sa portée et son but, donc si nous voulons utiliser XML et quelqu'un nous dit que nous sommes dépassés, sachez juste que pour nos besoins c'est tout à fait valable.
Comme nous l'avons déjà expliqué un fichier XML Il est composé de balises, mais pour être interprété correctement, il doit avoir un titre et commencer par le contenu. L'en-tête est connu sous le nom DTD ou alors Définition du type de document, qui pourrait être traduit par définition de type du document, puis le contenu est le schéma ou schéma en espagnol.
Que fait la DTD ?Le DTD est celui qui donnera l'information au analyseur sur quel genre de XML est et dans le schéma C'est là que le contenu que nous avons créé pour notre document ira.
Dans l'image suivante, nous verrons à quoi ressemble un document de test que nous avons dans notre environnement de développement d'applications :
Nous avons remarqué que le XML ce n'est rien de plus que du texte, nous pouvons donc faire des routines simples dans notre application dans PHP générer le contenu correspondant à un fichier XML, cependant si nous voyons l'en-tête du fichier XML a les mêmes balises que les balises d'ouverture de la langue, c'est-à-dire donc si on fait un chassèrent contenu simple de la XML nous allons avoir une erreur de syntaxe.
Nous pouvons corriger cela facilement en utilisant un entête et changer le Type MIME par text/xml cela fera l'interpréteur PHP ne plus considérer l'en-tête de notre contenu comme une erreur XML que nous générons. Voyons ci-dessous le code que nous allons utiliser pour créer notre petit exemple :
"Fight Club", 'author' => "Chuck Palahniuk"), array ('title' => "World War Z", 'author' => "Max Brooks",)); foreach ($ livres as $ livre) {echo "\ n"; echo "{$ livre ['titre']} \ n"; echo "{$ livre ['auteur']} \ n"; echo "\ n \ n" ; }?> var13 ->
Nous voyons ici comment la première chose que nous faisons est de générer l'en-tête du document avec le entête, cela nous permettra de placer la balise de début de notre XML sans générer d'erreurs de syntaxe dans PHP, puis nous plaçons en dehors du code notre balise racine du schéma, dans ce cas bibliothèque.
Ensuite, nous créons un petit tableau avec plusieurs éléments que nous avons appelés livres, la chose importante ici même si c'est quelque chose de manuel est que nous pouvons voir que nous pourrions le faire avec un résultat de Base de données par exemple. Enfin, nous parcourons notre tableau et imprimons, en respectant toujours les étiquettes afin que nos XML est bien formé.
En fin de compte, lorsque nous l'exécuterons sur notre serveur de test, nous obtiendrons quelque chose comme ceci dans le navigateur :
AGRANDIR
Amélioration du traitementBien que ce qui précède fonctionne assez bien et soit très utile, il est trop sujet aux erreurs, donc pour notre aide, nous avons plusieurs bibliothèques qui nous permettent de créer des documents XML des définitions les plus courantes du langage, pour cela nous avons la bibliothèque SOLEIL et la librairie XML simple, les deux nous permettent de générer des documents XML ainsi que de faire le analyser les mêmes.Dans l'exemple suivant, nous allons prendre un fichier XML qui est dans notre répertoire, pour faciliter les choses, nous pouvons enregistrer le document qui a été généré dans l'exemple précédent et nous l'appellerons php_crear_xml.xml, en tenant compte du fait qu'en modifiant l'extension, nous ne pourrons plus utiliser PHP pour imprimer l'en-tête, un moyen facile de voir le XML plein est d'appuyer CTRL + u et nous aurons le même. Une fois que nous avons notre fichier de test, nous allons utiliser le code suivant pour faire le analyser du fichier.
charger ("exemple1.xml"); process ($ parser-> documentElement); function processus ($ node) {foreach ($ node-> childNodes as $ child) {if ($ child-> nodeType == XML_TEXT_NODE) {echo "". $ enfant-> nodeValue."
";} else if ($ child-> nodeType == XML_ELEMENT_NODE) {process ($ child);}}}?> var13 ->
Dans le code, nous voyons que nous avons créé un objet du type DOMDocument, cela nous amènera la librairie SOLEIL être capable d'interpréter le XML, puis avec la méthode charge () nous chargeons le fichier XML que nous avons sur notre route puis nous appelons la fonction traiter() c'est celui qui va nous permettre de parcourir le document chargé.
Enfin on définit notre fonction, ici on passe par chaque nœud puis on fait un conditionnel s'il s'agit d'un élément XML Nous appelons la fonction, sinon si c'est du texte nous l'imprimons, avec cela nous pouvons obtenir le contenu du XML sans problème.
Le seul défaut de cette méthode et de cette librairie est la quantité de mémoire nécessaire sur le serveur, donc s'il s'agissait d'un gros fichier XML il serait très difficile pour notre serveur de le traiter.
Nous avons aussi la bibliothèque XML simple pouvoir créer et traiter les fichiers XML, son utilisation est similaire à la bibliothèque SOLEILCependant, il est plus limité en termes d'application et de plus grande complexité, bien qu'il soit un peu plus grand, donc notre code peut être plus complexe.
La chose intéressante à propos de cette bibliothèque est qu'un objet est créé avec notre XML avec lesquels nous pouvons accéder directement à leurs propriétés et ainsi travailler avec eux. Voyons dans le code suivant comment accéder aux labels qualification de chaque livre que nous avons dans notre XML d'essais.
livre comme $ livre) {echo $ livre-> titre. "
";}?> var13 ->
Bien que le code puisse sembler un peu court, ce que nous faisons est de créer un objet à partir du fichier chargé et nous pouvons boucler avec un pour chaque chacun de ses nœuds et accéder ainsi au contenu de son label de manière simple. Avec lequel nous obtiendrions les éléments suivants dans le navigateur :
Avec cela, nous concluons ce tutoriel, nous avons créé avec succès un fichier XML et nous avons appris deux manières différentes de lire ces fichiers, il est important de s'entraîner avec des fichiers plus complexes afin d'être prêts et capables d'appliquer nos connaissances dans une application réelle.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif