IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[c#][xml] requete xpath sur document xml avec espace de noms


Sujet :

Windows Forms

  1. #1
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Par défaut [c#][xml] requete xpath sur document xml avec espace de noms
    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.

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Essaye avec ça plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XPathExpression query = navigator.Compile("/LivreRecette/cz:Recette");
    puisque l'élément LivreRecette n'est pas préfixé.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Par défaut
    merci beaucoup çà marche.

    je sais pas pourquoi je suis passé à côté de çà.

    Encore merci en tout cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SimpleXML] Combox en php (5.2) depuis requete xpath sur xml
    Par christophetriboulet dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/03/2015, 16h28
  2. Réponses: 4
    Dernier message: 27/02/2010, 22h04
  3. [XML] Outil pour requêter (filtrer) un document xml
    Par aperrin dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/08/2006, 09h03
  4. Réponses: 12
    Dernier message: 19/05/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo