[XML & PHP]Parcourt d'un fichier XML

Parcourt d'un fichier XML [XML & PHP] - XML/XSL - Programmation

Marsh Posté le 26-06-2008 à 16:36:20    

Bonjour,
 
Je souhaite parcourir un fichier XML représentant un menu, de la forme suivante :

Code :
  1. <menu>
  2.      <rubrique>
  3.           <id>1</id>
  4.           <idparent>0</idparent>
  5.           <libelle>rubrique 1</libelle>
  6.           <lien>url rubrique 1</url>
  7.           <sousrubrique>
  8.                <libelle>rubrique 1.1</libelle>
  9.                <libelle>rubrique 1.2</libelle>
  10.           </sousrubrique>
  11.      </rubrique>
  12.      <rubrique>
  13.           <id>2</id>
  14.           <idparent>0</idparent>
  15.           <libelle>rubrique 2</libelle>
  16.           <lien>url rubrique 2</url>
  17.           <sousrubrique>
  18.                <libelle>rubrique 2.1</libelle>
  19.           </sousrubrique>
  20.      </rubrique>
  21.      <rubrique>
  22.           <id>11</id>
  23.           <idparent>1</idparent>
  24.           <libelle>rubrique 1.1</libelle>
  25.           <lien>url rubrique 1.1</url>
  26.           <sousrubrique>
  27.                <libelle>rubrique 1.1.1</libelle>
  28.                <libelle>rubrique 1.1.2</libelle>
  29.           </sousrubrique>
  30.      </rubrique>
  31.      ...
  32.      <rubrique>
  33.           <id>XYZ</id>
  34.           <idparent>11</idparent>
  35.           <libelle>rubrique 1.1.1</libelle>
  36.           <lien>url rubrique 1.1.1</url>
  37.      </rubrique>
  38.      ...
  39. </menu>

J'aimerais à partir de ce fichier (qui n'est pas trié, les données sont dispatchées dans tout le fichier), construire (en PHP) un menu qui ressemblerait à ceci :

Code :
  1. rubrique 1
  2.      -> rubrique 1.1
  3.           --> rubrique 1.1.1
  4.           --> rubrique 1.1.2
  5.      -> rubrique 1.2
  6. rubrique 2
  7.      -> rubrique 2.1

Pour l'instant, le seul algorithme que j'ai est le suivant :
Pour chaque noeud, je recherche un noeud dont l'"idparent" correspond à l'"id" du noeud courant.
Or je trouve que ce n'est pas très intéressant car plus mon fichier sera volumineux, et plus mon parcourt des rubriques mettra du temps.
Alors j'aimerais savoir s'il existe des outils (ou des fonctions) qui permettraient de récupérer facilement les sousrubriques d'une rubrique ?
Merci.


Message édité par hsmr le 26-06-2008 à 16:42:23
Reply

Marsh Posté le 26-06-2008 à 16:36:20   

Reply

Marsh Posté le 27-06-2008 à 10:34:59    

Je regarderais du côté de la fonction Xpath id(), mais cela requièrt une DTD pour définir les id's... j'ignore si c'est faisable en php.

Reply

Marsh Posté le 02-07-2008 à 12:30:16    

Utilise SimpleXML qui permet de lire des fichiers facilement, c'est de l'objet....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed