Bonjour,
j'ai le fichier XML incomplet suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<number="1" depth="0">
    <number="2" depth="1">
        <number="4" depth="2">
            <number="8" depth="3">
                ...               
            </number>
        </number>
        <number="3" depth="2">
            <number="5" depth="3">
                ...  
            </number>
            <number="6" depth="3">
                ...  
            </number>
        </number>
    </number>
</number>
Ce fichier représente l'arbre incomplet suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
           1
           |
           2         ----> Doubles or Sums of the precedings numbers
          / \
         3   4       ----> Doubles or Sums of the precedings numbers
        / \   \
       /   \   \
      5     6   8
... etc
Je veux utiliser des fichiers XML afin de ne pas être limité en mémoire.

Je voudrais à partir du fichier XML faire trois choses le plus rapidement possible, quitte à faire appel à des bibliothèques extérieures comme lxml (c'est même sûr qu'il faudra faire cela) :
  1. Savoir si un nombre N apparait en tant que valeur de number.
  2. Si un nombre N apparait dans le fichier XML, j'aimerais récupérer le chemin qui permet d'y accéder. Par exemple, pour 8, j'aimerais récupérer [1,2,4], et pour 3 avoir [1,2]. J'aimerais aussi récupérer sa profondeur depth indiquée dans mon fichier XML,mais je pense inutile d'utiliser ce depth.
  3. Une dernière chose, j'aimerais aussi, afin de construire mon fichier XML, ajouter des noeuds là où il y a des points de suspension.

Toute info. est la bienvenue.