J’ai générer un fichier xml dynamiquement à l’exécution. S’il vous plaît m’aider à créer le dessous XML du fichier dynamiquement à l’aide de PHP.
Réponses
Trop de publicités?J’utiliserais SimpleXMLElement.
Depuis que cette question est un des devoirs je pense que vous devriez éviter les raccourcis comme la création de modèles de systèmes et de classes d'aide de votre champ d'application devrait être d'apprendre à faire quelque chose, de ne pas faire les choses.
Pour créer un XMLdocument en PHP, vous devriez instance d'une classe DOMDocument, de créer des nœuds enfants et de les ajouter à ces nœuds dans la bonne branche de l'arborescence du document.
Pour référence, vous pouvez lire http://it.php.net/manual/en/book.dom.php
Maintenant, nous allons jeter un rapide tour de le code ci-dessous.
- à la ligne 2, nous avons créer un document xml vide (il suffit de spécifier xml version (1.0) et l'encodage (utf8))
- maintenant nous avons besoin pour remplir l'arborescence xml:
- Nous devons créer un xmlnode (ligne 5)
- et nous devons ajouter cela dans la bonne position. Nous créons de la racine si on ajoute directement à l'objet domdocument.
- Note de créer un élément ajouter l'élément de nœud et retour le nœud inséré, nous enregistrer cette référence, pour ajouter la piste des nœuds au nœud racine (d'ailleurs appelé xml).
Ce sont les bases, vous pouvez créer et ajouter un nœud dans une ligne (13, par exemple), vous pouvez faire beaucoup d'autres choses avec l'api dom. C'est à vous.
<?php
/* create a dom document with encoding utf8 */
$domtree = new DOMDocument('1.0', 'UTF-8');
/* create the root element of the xml tree */
$xmlRoot = $domtree->createElement("xml");
/* append it to the document created */
$xmlRoot = $domtree->appendChild($xmlRoot);
$currentTrack = $domtree->createElement("track");
$currentTrack = $xmlRoot->appendChild($currentTrack);
/* you should enclose the following two lines in a cicle */
$currentTrack->appendChild($domtree->createElement('path','song1.mp3'));
$currentTrack->appendChild($domtree->createElement('title','title of song1.mp3'));
$currentTrack->appendChild($domtree->createElement('path','song2.mp3'));
$currentTrack->appendChild($domtree->createElement('title','title of song2.mp3'));
/* get the xml printed */
echo $domtree->saveXML();
?>
Edit: Juste un autre indice: Le principal avantage de l'utilisation d'un xmldocument (le document dom l'un ou l'simplexml un au lieu de l'impression, le xml,c'est que le xmltree est consultable avec la requête xpath
Jetez un oeil à la petite Mais Solide système de template. Il est généralement utilisé pour les templates HTML, mais il y a une extension qui fonctionne avec des fichiers XML. J'utilise cette profondeur pour la création de rapports où je peux en avoir un fichier de code et les fichiers de modèle de deux - htm et xml - et l'utilisateur peut alors choisir d'envoyer un rapport à l'écran ou une feuille de calcul.
Un autre avantage est que vous n'avez pas de code xml à partir de zéro, dans certains cas, j'ai eu envie d'exportation de très grandes feuilles de calcul complexes, et au lieu d'avoir à le code de toutes les exporter tout ce qui est nécessaire est pour enregistrer une feuille de calcul existante en xml et remplacer dans des balises de code où les données de sortie est nécessaire. C'est un rapide et un moyen très efficace de travailler.