Bonjour,

Je crée un logiciel de gestion de recette de cuisine.
J'ai stocke les données dans un fichier Xml.

Voici un exemple de ce fichier :
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
18
19
20
21
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<LivreRecette xmlns:cz="http://coozina.sourceforge.net/specifications">
	...
	<cz:Recette id="1">
		<cz:Titre>Crumbles de fraises</cz:Titre>
		<cz:Catégorie>[cz.Catégorie.Dessert]</cz:Catégorie>
		<cz:NombrePersonne>4</cz:NombrePersonne>
		<cz:Tags>dessert fraise crumble beurre sucre</cz:Tags>
		<cz:TpsPreparation>20</cz:TpsPreparation>
		<cz:TpsCuisson>25</cz:TpsCuisson>
		<cz:Ingrédients>
			<cz:Ingrédient nom="fraises" unité="grs" quantité="150" />
			<cz:Ingrédient nom="sucre roux" unité="grs" quantité="150" />
			<cz:Ingrédient nom="beurre" unité="grs" quantité="150" />
			<cz:Ingrédient nom="sucre en poudre" unité="càs" quantité="2" />
			<cz:Ingrédient nom="vanille en poudre" unité="pincée" quantité="1" />
			<cz:Ingrédient nom="cannelle en poudre" unité="pincée" quantité="1" />
		</cz:Ingrédients>
...
</LivreRecette>
Comme vous pouvez le voir j'ai créer un espace de nom relative à mon application (avec une URI bidon)

Le problème c'est que je voudrais récupérer le nom de chaque recette pour le mettre dans un listBox.
Mais avec l'espaces de nom ça pose un problème.

J'ai trouvé cette page sur le msdn
http://msdn.microsoft.com/fr-fr/library/e5t11tzt.aspx

J'y ai repris l'exemple en adaptant à mon cas.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
XPathNavigator navigator = document.CreateNavigator();
XPathExpression query = navigator.Compile(@"/cz:LivreRecette/cz:Recette");
XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable);
manager.AddNamespace("cz", "http://coozina.sourceforge.net/specifications");
query.SetContext(manager);
XPathNodeIterator nodes = navigator.Select(query);
 
while(nodes.MoveNext())
{
	liste_recettes.Items.Add(nodes.Current.Name);
}
Mais cela me retourne aucun resultat. Y a-t-il une autre méthode pour faire une requete XPath sur un document XML avec un espace de noms ?

Merci pour votre aide.