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

C# Discussion :

Test de valeur et requête Xpath.


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 118
    Par défaut Test de valeur et requête Xpath.
    Bonjour à tous.

    Voila, je dois renseigner dans un fichier XML, des attributs pour certains noeuds.
    Pour cela, je dois regarder le contenu du noeud, et savoir si j'ai sélectionné le bon noeud avec la bonne valeur, si c'est le cas, alors je crée l'attribut correspond et je l'affecte.

    Au départ, je ne savais pas comment faire pour récuperer un noeud en effectuant un test de valeur. J'ai donc consulter le tutoriel correspondant sur le site : xpath-fonctionnements-predicats
    Et j'ai donc appliqué la méthode nécessaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlProfil.SelectSingleNode("//Offres/Produit[.="+nomOffre+"]").Attributes.SetNamedItem(attribut1);
    Malheuresement (et comme je m'y attendais), le fait de préciser [.="+nomOffre+"] ne fonctionne pas, mais je ne sais pas du tout comment procéder pour le coup.
    Existe t'il une fonction en c# que j'ignore permettant d'effectuer ceci ? ou alors est-ce ma requête qui est mal écrite ?

    Merci d'avance !

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2004
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 218
    Par défaut
    Bonjour,

    Peut-être qu'une réponse se trouverai ici http://msdn.microsoft.com/fr-fr/libr...=vs.90%29.aspx

    Bonne recherche et bon courage

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 118
    Par défaut
    Salut Stujava.

    Merci à toi pour cette source.
    En effet, je comptais utiliser le Linq to Xml pour effectuer mes requêtes. Mais finalement cela m'as mis sur une autre voie et j'ai opté pour l'utilisation du XDocument en utilisant le using System.Xml.XPath et le using System.Xml.Linq (chose que je connaissais pas jusqu'à maintenant).

    Du coup, ça me permet de directement alimenter l'attribut qui va bien avec la fonction Attribute("nom de l'attribut") et d'utiliser la propriété Value pour affecter une valeur.
    Voici un petit morceau de code pour exprimer tout cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //On instancie un objet de type XDocument
    XDocument doc = new XDocument();
    //On charge le fichier XML que l'on souhaite traiter. Path_Xml contient le chemin absolu.
    doc = XDocument.Load(Path_Xml);
    //On récupère le noeud que l'on souhaite grâce à une requête Xpath et à la fonction text(), qui permet de récupérer l’élément souhaité en fonction de sa valeur (de l'InnerText). 
    XElement noeud = doc.XPathSelectElement("//Offres/Produit[text()='" + nomOffre + "']");
    //On déclare un objet de type XAttribut et on l'affecte avec  l'attribut souhaité du noeud que l'on a récupérer avec la requête Xpath du dessus. 
    XAttribute attributAffiche = noeud.Attribute("Affiche");
    //On affecte la valeur souhaité avec la propriété Value de l'attribut
    attributAffiche.Value = "oui";
    // Et on sauvegarde la modification.
    doc.Save(Path_Xml + profil + ".xml");
    Merci encore

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

Discussions similaires

  1. [xpath] test sur valeur d'un noeud
    Par lusitano11 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 03/12/2008, 16h28
  2. Réponses: 8
    Dernier message: 11/08/2005, 09h32
  3. [XML] Requête Xpath
    Par Raylemon dans le forum Langage
    Réponses: 1
    Dernier message: 02/07/2005, 15h58
  4. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38
  5. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53

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