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 :

Un tutorial pour Xpath


Sujet :

C#

  1. #1
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut Un tutorial pour Xpath
    Bonjour,

    J'ai cherché sur le site et sur le net un tutorial pour Xpath en C#.
    J'en ai trouvé quelques un mais ils sont, excusé moi du mot, pourris.

    Connaitriez vous un tutorial digne de ce nom.
    Je souhaite juste à lire et ecrire dans un fichier XML.

    En attendant, je vais m'amuser avec l'aide en ligne MSDN .

    Merci d'avance pour vos réponses.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 58
    Par défaut
    xpath:
    http://www.w3schools.com/xpath
    http://www.tizag.com/xmlTutorial/xpathattribute.php

    C'est de l'anglais mais relativement facile à comprendre

    J'en ai trouvé quelques un mais ils sont, excusé moi du mot, pourris.
    C'est pas très gentil ça!

  3. #3
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    L'anglais ne me pose pas de problème.
    Merci mais ce n'est pas ce que je veux (bou de diou il est pas éxigent celui la )

    En fait tous ceux base sur le fait que l'utilisation du code est acquis et simple et qu'il faut juste savoir faire une requête !!!!

    Bah non je suis désolé ce n'est pas le cas !!!
    J'ai besoin de savoir ce que font les méthodes des objets utilisés, mais aucun tutorial la dessus.
    Pour cela que je me tourne vers MSDN, mais cela serait plus simple avec un tutorial.

    Prenons un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    XPathDocument xPathDoc;
    XPathNodeIterator authors;
    XPathNavigator xPathNav;
    string xPathExp;
    string path;
     
    path = "Votre fichier";
    xPathDoc = new XPathDocument(path);
    xPathNav = xPathDoc.CreateNavigator();
    string xPathExp = "CodeS-SourceS/descendant::Source[Rating>=8.5]";
    authors = xPathNav.Select(xPathNav.Compile(xPathExp));
    Le fichier XML est celui du tutorial.
    On a ce ci :
    // Les descendants de CodeS-SourceS avec un élément Source qui a un attribut
    // plus grand où égal à 8.5
    // Retourne 5 noeuds (les 5 sources ayant la note qui répond au critère)
    "CodeS-SourceS/descendant::Source[Rating>=8.5]"
    Et bas comment afficher dans un RichTextBox c'est 5 noeuds ?
    Pas dit dans le tutorial (ou je ne sais pas lire) !!!!
    Et donc bref, je ne comprends comment faire !!!

    J'espère que MSDN sera plus clair.
    Merci en tout cas de ta réponse.

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Bon j'ai trouvé le code pour afficher différente chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (authors.MoveNext())
    {
     richTextBox1.AppendText(authors.Current.Value); //On affiche les valeurs du noeud courant, et ame affiche son nom
    }
    richTextBox2.Text = authors.Current.OuterXml; //on affiche la portion du fichier xml concerne la requête
    En tout cas ce n'est pas grâce au tutorial que j'ai trouvé ce code !!!

    J'en ferais peut être un basique sur l'utilisation d'Xpath dasn le cadre de mon travail, alors je le proposerais peut être. (vous pourrez me dire qu'il est pourris alors !!!)

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Enfin voilà un vrai tutorial sur Xpath :
    http://jfdeterme.developpez.com/tuto...rp/tuto_xpath/

    Celui là est bien fait !!!!
    Je ne comprends pas pouquoi je ne l'ai pas trouvé à partir du menu de recherche des tutoriaux .Net !!!
    En effet c'est google qui l'a trouvé pour moi lorsque je cherchais à comprendre pourquoi la méthode XpathNavigator.Current.SetValue ne marche pas :
    /* On utilise un XmlDocument et non un XPathDocument car ce dernier ne permet pas l'édition des données XML. */
    Fallait le savoir.

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Selon moi traiter XPath sans traiter XSL, c'est un peu bancal, les deux étant liés. Je pense que c'est pour cela que tu as eu du mal à trouver un tuto uniquement sur XPath.

    Mais ce n'est que mon avis
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Selon moi traiter XPath sans traiter XSL, c'est un peu bancal, les deux étant liés.
    Pas tout à fait d'accord... XSL dépend de XPath, mais le contraire n'est pas vrai.
    Ce qui serait bancal c'est de traiter XSL sans traiter XPath

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Ha mais je ne suis pas un expert en XML. Moi tout ce que je veux c'est une méthode simple pour lire un fichier XML et récupérer des infos dedans, et modifier le contenu d'un autre fichier XML.
    En plus je souhaite éviter plein de foreach imbriquer, pas tant pour la performance, mais plus pour simplifier la lisibilité du code.
    D'où l'intérêt que je porte à Xpath.

    D'après ce que me dit Wiki, je n'ai pas besoin de xsl :
    XSL (eXtensible Stylesheet Language) est le langage de description de feuilles de style du W3C associé à XML.

    Une feuille de style XSL est un fichier qui décrit comment doivent être présentés (c'est-à-dire affichés, imprimés, épelés) les documents XML basés sur une même DTD ou un même schéma.
    Moi j'ai un premier fichier xml, qui est plus un fichier de conf, qui doit être créer à la main et lu par mon application.
    J'ai un deuxième fichier XML généré par une application commerciale que j'utilise. Mon programme va modifier ce fichier XML avec les données du premier, et va lancer l'application commercial.
    Le premier fichier xml, j'aurais pu faire un simple fichier texte, mais comme je dois de toute façon parser au moins un fichier xml ...
    Après pour mon premier fichier xml, je vais juste faire une DTD pour s'assurer que celui qui le créera respecte la structure que j'ai définis.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut
    Je te conseillerai pour avoir eu un prog similaire au tien de passer par un xmldocument
    donc xmldocument doc = new xmldocument();
    doc.load(path+fichierxml)
    et en suite t'a juste a te faire une expression xpath :
    string xpathexpression = "ma requete xpath"
    tu créer un simple noeud si tu cherche la valeur d'un noeud ou alors une liste de noeud si tu veux en selectionner plusieurs :
    xmlnode noeudsingulier = doc.selectsinglenode(xpathexpression)
    pour récupérer la valeur de ton noeud =>
    noeudsingulier.innertext, .value et autre (a verif avec point d'arret)

    pareil pour une liste mais tu créer une xmlnodelist
    et pour avoir la valeur d'un noeud dans la liste tu fais : nomdetaliste["nomdetonnoeud"].innertext

    super simple non ?
    et pour modifier ton noeud : noeudsingulier.innertext = newvaleur
    puis doc.save(path+fichier)

    (donc pour afficher dans ta richtext box tu affiche les .innertext de tes noeuds pis voilou ! )

    (il y a une seconde méthode sympa aussi avec les navigateurs, c'est très semblable a vrai dire mais pour un simple fichier de conf je pense pas que ca te soit nécessaire ! )
    mais bon si ca t'interesse je pourrais tjrs tenter de te l'expliquer
    En espérant avoir pu t'aider

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Merci.
    Les tutoriaux passent par l'utilisation d'un navigateur.
    J'ai passé un peu de temps dessus, et maintenant je peux obtenir ce que je souhaite obtenir.
    Surtout que la maintenant j'ai bien compris que le navigateur est un itérateur, comme l'est un pointeur de parcour d'une liste chainée en C !!!

    Enfin il me semble plus "intelligent" quand même.

    Donc la je dirais que cela devrait aller. La syntaxe n'est pas si compliqué que cela. Juste que lorsque tu connais pas, tu connais pas !!!

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

Discussions similaires

  1. Cherche un tutorial pour créer un logiciel de messagerie ?
    Par BXDSPORT dans le forum Web & réseau
    Réponses: 1
    Dernier message: 28/10/2005, 17h49
  2. [lomboz-3.1RC1] Cherche tutorial pour créer des EJB
    Par cosmos38240 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 19/08/2005, 17h02
  3. tutorial pour la librairie Boost
    Par xxiemeciel dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 04/08/2005, 08h44
  4. tutorial pour jbuilderX
    Par Garion dans le forum JBuilder
    Réponses: 2
    Dernier message: 19/08/2004, 14h13
  5. où y a t il un tutorial pour le Treeview ??
    Par silvermoon dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/12/2002, 13h30

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