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 :

Condition avec 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
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Par défaut Condition avec XPath
    Bonjour,

    Je dois récupéré des valeur dans un xml,cependant j'aimerais savoir si mon noeud est bien présent à chaque fois.
    Voici une partie de mon Xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <FICHE MFN="535">
      <TYPE>M</TYPE> 
      <LANGUE_LANTE>En.</LANGUE_LANTE> 
      </FICHE>
    - <FICHE MFN="536">
      <TYPE>M</TYPE> 
      <AUTEUR_AUTS>Olivier PICON</AUTEUR_AUTS>
    <LANGUE_LANTE>Fr.</LANGUE_LANTE>
    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    XPathDocument doc = new XPathDocument(fileName);
                    XPathNavigator nav = doc.CreateNavigator();
                    //TO DO:Avoir la liste de nom de tous les noeuds possibles
                    XPathNodeIterator iter = nav.Select("base/FICHE");
                    while (iter.MoveNext())
                    {
                        string Type = iter.Current.SelectSingleNode("TYPE").Value;
    string Auteur = iter.Current.SelectSingleNode("AUTEUR_AUTS").Value;
     string Langue = iter.Current.SelectSingleNode("LANGUE_LANTE").Value;
    Je n'arrive pas à mettre une condition comme
    if(... != null)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Par défaut
    J'ai résolu mon probléme,en transformant une grande partie de mon code.
    Mais un nouveau probléme est apparu avec mes requêtes XPath
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valXml.Add(RecupValeurXml("base/FICHE[@MFM=\""+ (iter.CurrentPosition+1) +"\"]/TYPE", iter));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public string RecupValeurXml(string balise,XPathNodeIterator iter)
                    {
                         string champs = " ";
                            if(iter.Current.SelectSingleNode(balise) != null)
                            {
                                champs = iter.Current.SelectSingleNode(balise).Value;
                            }...
    Je n'arrive jamais à rentrer dans mon if...
    Je pense que cela vient de ma requête Xpath
    Voici mon XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <base>
    - <FICHE MFN="1">
      <TYPE>P</TYPE>
    .....
    J'ai essayer avec des ' aussi dans ma requête Xpath,mais je suis bloqué,merci de m'aider

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Par défaut
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valXml.Add(RecupValeurXml("base/FICHE[@MFM='\"" + (iter.CurrentPosition + 1) + "\"']/TYPE", iter));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valXml.Add(RecupValeurXml("base/FICHE[MFM = " + (iter.CurrentPosition + 1) + "]/COLLECTIVITE_AUTEUR_COLS", iter));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valXml.Add(RecupValeurXml("base/FICHE[@MFM = ' " + (iter.CurrentPosition + 1) + " ' ]/AUTEUR_AUTS", iter));
    Cela me bloque complètement mon programme

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Par défaut
    Finalement j'ai résolu mon erreur

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Par défaut
    Finalement j'ai rencontré un nouveau problème,comment faire pour récupéré dans une liste toutes les valeurs quand les balises sont identiques,c'est à dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <AUTEUR_AUTS>Evangelos A CALAMITSIS</AUTEUR_AUTS> 
      <AUTEUR_AUTS>Michael C DEPPLER</AUTEUR_AUTS> 
      <AUTEUR_AUTS>John ODLING-SMEE</AUTEUR_AUTS> 
      <AUTEUR_AUTS>Paul CHABRIER</AUTEUR_AUTS> 
      <AUTEUR_AUTS>Claudio M LOSER</AUTEUR_AUTS>

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/07/2007, 11h33
  2. condition avec request
    Par nicerico dans le forum ASP
    Réponses: 3
    Dernier message: 28/06/2005, 15h19
  3. [XSL-fo] Probleme avec XPATH
    Par serwol dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/06/2005, 09h11
  4. Conditions avec liste de tuples
    Par Robert999 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/07/2004, 11h01
  5. [ Struts ] plusieurs conditions avec equal?
    Par njac dans le forum Struts 1
    Réponses: 7
    Dernier message: 04/06/2004, 09h04

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