Trier un fichier xml

Fermé
Clemred - Modifié par Clemred le 2/04/2011 à 21:31
creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 - 5 avril 2011 à 22:02
Bonjour,

Alors, j'ai un fichier xml du type :
.
<?xml version="1.0"?> 
<list> 
  <tache id="5"> 
    <statut></statut> 
    <nom></nom> 
  </tache> 
  <tache id="3"> 
    <statut></statut> 
    <nom></nom> 
  </tache> 
  <tache id="2"> 
    <statut></statut> 
    <nom></nom> 
  </tache> 
  <tache id="4"> 
    <statut></statut> 
    <nom></nom> 
  </tache> 
  <tache id="1"> 
    <statut></statut> 
    <nom></nom> 
  </tache> 
</list> 

.
Et je souhaite créer une fonction qui me trie ce joli fichier par valeurs croissantes d'id, et qui enregistre tout ça dans un fichier xml (le top serait que l'enregistrement écrase le fichier xml non trié par le fichier xml trié)
.
J'ai passé quelques heures à chercher sur google, en fraçais, en anglais... mais ça n'a rien donné
J'ai bien trouvé des choses, mais rien qui corresponde vraiment à ce que je veux
.
Donc si vous avez des idées, je m'en remet à vous
Merci d'avance


3 réponses

creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
5 avril 2011 à 02:41
Ce serait pour quel langage de programmation ?
0
Quel intérêt ce tri? Puisque les valeurs des id indique déjà cet ordre. XML est fait pour être parser(analysé si on veut une traduction inexacte) pour obtenir les données parsé selon les critères nécessaires.
Sinon as tu définit un doctype? Cela pourrait résoudre certaines erreurs.

http://www.commentcamarche.net/contents/xml/xmlintro.php3
0
Ben pour le moment tout mon code qui utilise ce xml est en php.
Mais s'il y a d'autres façons de faire ce tri, je suis bien sur ouvert.

Je souhaite faire ce tri car les 'id' changent, et vu que je veux les afficher par ordre d'id croissant, ben je me disait que c'était bien de faire une fonction qui remette tout dans l'ordre, ce qui rend l'affichage simple (puisque les taches seront toujours triées par ordre d'idée croissant).

Pour le moment, l'idée que j'ai, c'est de stocké chaque noeud 'tache' dans un tableau, dans la case référencée par l'id du noeud (exemple : $tab[$i] = le noeud qui a pour id $i), ce qui me donnera un tableau contenant tous mes noeuds, et triés par ordre d'id croissant.
Après je n'ai plus qu'à ré-écrire mon fichier xml en lisant mon tableau dans l'ordre.

Je pense que cette méthode peut marcher, mais me parrait un peu lourde (à chaque tri il faut réécrire le fichier xml en entier...).

Bon, je tiens à dire que c'est pour un usage personnel, mais si je peux trouver une optimisation c'est beaucoup mieux.



Voilà, merci beaucoup à ceux qui portent de l'attention à ma question.
Si vous avez des idées/questions, nh'ésitez pas ! =)



PS : anj, je regarde ton lien ;)
0
creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
5 avril 2011 à 22:02
Peut être en triant directement les noeuds avec http://www.php.net/manual/fr/function.domnode-insert-before.php ?
0