2010-05-12 6 views
1

Je suis assez nouveau dans l'analyse XML et j'utilise XMLREADER pour analyser un fichier volumineux.PHP XMLREADER - QUESTION

Compte tenu du XML suivant (exemple):

<hotels> 
<hotel> 
    <name>Bla1</name> 
</hotel> 
<hotel> 
    <name>Bla2</name> 
</hotel> 
</hotels> 

Et puis le xmlreader en PHP qui tire les valeurs de ma base de données:

$reader = new XMLReader(); 
$reader->open('hotels.xml'); 
while ($reader->read()) { 

if ($reader->name == "name") { 

    $reader->read(); 
    mysql_query("INSERT INTO MyHotels (hotelName) VALUES (\"$reader->value\")"); 
} 

} 
$reader->close(); 

Le problème est que j'ai un rangée vide unique entre chacun des noeuds analysés !! Je ne sais pas pourquoi cela arrive!

| ID | hotelName | 
| 1 | Bla1  | 
| 2 |   | 
| 3 | Bla2  | 
| 4 |   | 

L'aide est grandement appréciée.

Répondre

0

Assurez-vous que $reader->value est pas vide si vous voulez éviter que:

if ($reader->name == "name") { 
    $reader->read(); 

    if ($reader->value) { 
    mysql_query("INSERT INTO MyHotels (hotelName) VALUES (\"$reader->value\")"); 
    } 
} 
+0

Je pense qu'il voit les noeuds de 'END_ELEMENT' ... – Tomalak