Bonsoir à tous !
J'ai un fichier XML formaté comme suit (Il est plus long que ça, je n'en mets qu'un fragment) :
Code xml : 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
18 <?xml version="1.0" encoding="utf-8" ?> <LevelsOfXP> <Level Value="1"> <MinimumXP>0</MinimumXP> </Level> <Level Value="2"> <MinimumXP>1000</MinimumXP> </Level> <Level Value="3"> <MinimumXP>2250</MinimumXP> </Level> <Level Value="4"> <MinimumXP>3750</MinimumXP> </Level> <Level Value="5"> <MinimumXP>5500</MinimumXP> </Level> </LevelsOfXP>
Ce fichier définit le palier d'expérience minimum (MinimumXP) pour atteindre le niveau voulu (Représenté par l'attribut "Value").
Pour ne pas avoir à parcourir à chaque fois le fichier XML dans son entier, je souhaite commencer la lecture à partir de mon niveau de mon niveau.
Je commence donc mon code comme suit :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 XmlDocument Doc = new XmlDocument(); Doc.Load("monfichier.xml"); XPathNavigator Navigator; XPathNodeIterator Nodes; byte CurrentLevel = CharacterLevel; uint CurentXP = CharacterTotalXP; Nodes = Navigator.Select("//Level[@Value='" + CurrentLevel.ToString() + "']"); MessageBox.Show(Nodes.Current.Value.ToString());
Supposons que je sois "Level 1". La dernière ligne me permet de vérifier la valeur obtenue par ma requête et j'obtiens...
Soit l'ensemble de mes valeurs de MinimumXP mise bout à bout. J'ai fait plusieurs tests avec des requêtes différentes (notamment sans le // avant Level) mais j'obtiens toujours le même résultat.01000225037505500
Je n'arrive pas à savoir où je me suis trompé. Ne devrais-je pas récupérer simplement 1000 ?
Cordialement,
Tuttu
Partager