Bonjour,

Je dois parcourir et modifier un fichier xml assez gros (~10 Mo)

Ce fichier ressemble de loin à ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
    <DOCUMENT> [...] </DOCUMENT>
    <DOCUMENT> [...] </DOCUMENT>
    <DOCUMENT> [...] </DOCUMENT>
    <DOCUMENT> [...] </DOCUMENT>
    [...]
</root>
Je charge donc mon fichier dans un Objet Document et récupère la liste des nodes <DOCUMENT/> dans une NodeList via la méthode suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
NodeList list = document.getElementByTagName("DOCUMENT");
et j'itère ensuite dessus de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
for (int i = 0; i < list.getLength(); i++) {
     Node document = list.get(i);
     // Process...
}
Le problème, c'est qu'au fur et a mesure, le passage d'un node à un autre est de plus en plus lent.

J'ai bien sur vérifié que ce n'était pas mon process qui était de plus en plus lent, mais bien le passage d'un node à un autre.

Est-ce un comportement normal? Si oui, y-a-t'il moyen de le contourner?


Merci pour votre aide éventuelle.