[PHP & XMLReader] Ne passe pas dans les noeuds Attributs [Resolu]

Ne passe pas dans les noeuds Attributs [Resolu] [PHP & XMLReader] - PHP - Programmation

Marsh Posté le 21-01-2007 à 20:09:44    

Bonsoir,
 
J'essaie de lire un fichier XML avec XMLReader en PHP.
 
Fichier "fichier.xml" : :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <page>
  3. <title>Accueil du site</title>
  4. <nom>Accueil</nom>
  5. <code id="articles_a_la_une" dd="dd" />
  6. </page>

Script PHP : :

Code :
  1. $xmlReader = new XMLReader();
  2. $xmlReader->open('fichier.xml');
  3. echo '<pre>';
  4. while($xmlReader->read()) {
  5. echo 'Nom = ' . $xmlReader->name . "\n";
  6. echo 'Valeur = ' . $xmlReader->value . "\n";
  7. echo 'type = ' . $xmlReader->nodeType . "\n";
  8. echo '-------------------------' . "\n";
  9. }
  10. $xmlReader->close();


Et je me récupère :

Citation :

Nom = page
Valeur =  
type = 1
-------------------------
Nom = #text
Valeur =  
 
type = 14
-------------------------
Nom = title
Valeur =  
type = 1
-------------------------
Nom = #text
Valeur = Accueil du site
type = 3
-------------------------
Nom = title
Valeur =  
type = 15
-------------------------
Nom = #text
Valeur =  
 
type = 14
-------------------------
Nom = nom
Valeur =  
type = 1
-------------------------
Nom = #text
Valeur = Accueil
type = 3
-------------------------
Nom = nom
Valeur =  
type = 15
-------------------------
Nom = #text
Valeur =  
 
type = 14
-------------------------
Nom = code
Valeur =  
type = 1
-------------------------
Nom = #text
Valeur =  
 
type = 14
-------------------------
Nom = page
Valeur =  
type = 15
-------------------------


 
Ce qui me dérange c'est de ne jamais voir apparaître de noeud de type XMLReader::ATTRIBUTE (code n°2).
 
Pour chaque noeud, je sais récupérer la valeur du premier attribut (s'il y en a) avec $xmlReader->getAttributeNo(0), mais j'aurais aimé pouvoir récupérer le nom de l'attribut : chose que je pensais possible en lisant la propriété name du noeud lorsque le noeud est du type XMLReader::ATTRIBUTE.
 
Bonne fin de week-end.


Message édité par _Raynor_ le 22-01-2007 à 02:14:00
Reply

Marsh Posté le 21-01-2007 à 20:09:44   

Reply

Marsh Posté le 21-01-2007 à 23:06:18    

Code :
  1. while ($xmlReader->read()) {
  2.  echo 'Nom = ' . $xmlReader->name . "\n";
  3.  echo 'Valeur = ' . $xmlReader->value . "\n";
  4.  echo 'type = ' . $xmlReader->nodeType . "\n";
  5.  echo '-------------------------' . "\n";
  6.  
  7.  for ($i = 0; $xmlReader->moveToAttributeNo($i); $i++) {
  8.    echo 'Nom = ' . $xmlReader->name . "\n";
  9.    echo 'Valeur = ' . $xmlReader->value . "\n";
  10.    echo 'type = ' . $xmlReader->nodeType . "\n";
  11.    echo '-------------------------' . "\n";
  12.  }
  13. }


 
?


Message édité par sielfried le 21-01-2007 à 23:07:10
Reply

Marsh Posté le 22-01-2007 à 02:13:35    

Merci, ça fonctionne :)
J'aurais cru que XMLReader::read() rentrerait dans les attributs sans avoir à le forcer :heink:

Reply

Sujets relatifs:

Leave a Replay

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