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

Dotnet Discussion :

Bonne condition pour XPath??


Sujet :

Dotnet

  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 Bonne condition pour XPath??
    Bonjour,

    J'ai l'erreur
    "Le format de la chaîne d'entrée est incorrect"
    Or je ne vois pas le probléme, voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public float ajout_a_la_liste_de_position(XPathNodeIterator noeud_position/*, string ListeElementUnique*/)
            {
     
                string element_conversion_float;
                float Position;
     
                    element_conversion_float = noeud_position.Current.Value;
                    noeud_position.MoveNext();
                    element_conversion_float =    element_conversion_float.Replace(",",  System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator);
                     Position = Single.Parse(element_conversion_float); 
     
                    return Position;
             }
    C'est aprés la ligne "Position = Single.Parse(element_conversion_float); " que j'ai l'erreur

    Merci de m'aider.

  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
    Le problème vient du fait que dans mon string,il n'y a pas que des chiffres.
    Le problème vient de là enfaite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     exprx1 = nav.Compile("/root.30/elements.9/elements[" + ListeElementPresentDans1Xml[i] + "]/" + element_position + "/x1");
    Enfaite je veux récupéré la valeur de x1 seulement si name = une certaine valeur.Mais je ne sais pas comment faire,car ce que j'ai fais ce marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ElementExtractorMono.3>
    				<name>VATTotalTotal</name>
     
    				<occurrences.22>
    					<occurrences>
    						<OccurrencePosCutting.13>
    							<x1>0,74797934</x1>

  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
    Je n'arrive pas à trouver. Personne ne sait comment faire cette condition?

  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
    J'ai re-modifié l'expression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     exprx1 = nav.Compile("/root.30/elements.9/elements[@name:"+unelement+"]/"+element_position+"/x1");
    Maintenant mon erreur est la suivante:
    Le gestionnaire d'espaces de noms ou XsltContext est requis. Cette requête a un préfixe, une variable ou une fonction définie par l'utilisateur.
    En cherchant sur le net,j'ai vu que l'on pouvait corriger cette erreur avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(nav.NameTable);
                    //nsmgr.AddNamespace
    simplement je ne sais pas quoi mettre à addNamespace...
    Merci

  5. #5
    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
    Ton expression XPath ne correspondant pas du tout à ton XML (le nom des balises ne colle pas) difficile de savoir où tu vas, mais essaye une expression de cette forme (à adapter donc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //ElementExtractorMulti.4[name='HT_TotalPrice']//x1
    qui correspond à la réponse de ton précédent sujet.

    Le sujet actuel ressemble d'ailleurs à ton précédent sujet, pourquoi n'as-tu pas continué dessus ?

  6. #6
    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
    Merci ta réponse m'a permis d'avancer un peu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unelement = ListeElementPresentDans1Xml[i];
                    exprx1 = nav.Compile("/root.30/elements.9/elements/" + ElementPositionElement+"[name='"+unelement+"']" + ElementPositionOccurence + "/x1");
    Maintenant,ça me dit qu'il y a un jeton qui n'est pas valide.

  7. #7
    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
    Fait un simple test avec l'expression XPath en dur, sans la compiler (surtout que si l'expression n'est pas utilisée de nombreuses fois c'est un peu inutile) et sans chercher à la construire dynamiquement. Histoire de voir si déjà tu obtiens quelque chose.

  8. #8
    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
    Ca marche enfin,merci pour ton aide,j'ai réussi à trouver mon erreur grâce à sa

  9. #9
    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
    Ah,j'ai a nouveau un petit bug.
    Lors de lecture de mon fichier XML apparemment,cela transforme "&apos;" en " ' "
    Du coup cela fait planter mon programme...

  10. #10
    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
    Si c'est juste apparemment on ne va pas aller bien loin
    Tu arrives à reproduire le "bug" sur un exemple simple (un fichier XML et un petit peu de code dans le Main d'une appli console) ? Si oui montre ça qu'on regarde.

  11. #11
    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
    Je ne suis pas sûr de bien avoir compris ce que tu demandais,mais voici un exemple d'XML qui me pose problème :
    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
    22
    23
    24
    25
    26
    27
    28
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <root.30>
    	<age>1</age>
    	<mature>0</mature>
    	<idStruct>2</idStruct>
    	<elements.9>
    		<elements>
    			<ElementIdentificatorWord.6>
    				<name>.&apos;test</name>
    				<elmType>1</elmType>
    				<occurrences.24>
    					<occurrences>
    						<OccurrencePosition.16>
    							<x1>0,21960784</x1>
    							<x2>0,25333333</x2>
    							<y1>0,58996296</y1>
    							<y2>0,59623611</y2>
    							<qualite>1</qualite>
    							<groupIDs>-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1:-1</groupIDs>
    							<curGroup>0</curGroup>
    							<myGroup>-1</myGroup>
    						</OccurrencePosition.16>
    					</occurrences>
    				</occurrences.24>
    			</ElementIdentificatorWord.6>
    		</elements>
    	</elements.9>
    </root.30>
    erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '/root.30/elements.9/elements/ElementIdentificatorWord.6[name ='.'test']/occurrences.24/occurrences/OccurrencePosition.16/x1' a un jeton non valide.

  12. #12
    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
    S'il y a un apostrophe dans la chaîne tu dois encadrer le prédicat entre guillemets à ce moment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stirng xpathQuery = "/root.30/elements.9/elements/ElementIdentificatorWord.6[name =\".'test\"]/occurrences.24/occurrences/OccurrencePosition.16/x1"

  13. #13
    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
    Super,je vais faire quelques tests pour voir si mon programme marche bien,merci beaucoup pour ton aide

Discussions similaires

  1. Bonne maniére d'écrire une condition pour une boucle.
    Par erik2003 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/07/2014, 00h15
  2. Conditions pour une bonne prestation de referencement?
    Par donkeyquote dans le forum Webmarketing
    Réponses: 4
    Dernier message: 25/02/2011, 09h43
  3. Bonne syntaxe pour condition dans une requete
    Par cedlannoy dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/03/2007, 15h24
  4. [MEA] bonne modelisation pour bdd carte pour les jeune
    Par madmortal dans le forum Schéma
    Réponses: 27
    Dernier message: 17/08/2004, 11h57

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