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#][1.1]Parser XML plus proprement


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut [C#][1.1]Parser XML plus proprement
    Bonjour !

    J'ai le fichier XML Suivant :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?xml version="1.0"?>
     
    <labanquedusud>
    	<compte>
    		<numero_compte>123</numero_compte>
    		<nom_client>dupont</nom_client>
    			<operations>
    				<operation1>
    					<intitule>Virement</intitule>
    					<debit>0</debit>
    					<credit>100</credit>
    				</operation1>
     
    				<operation2>
    					<intitule>Carrefour</intitule>
    					<debit>50.80</debit>
    					<credit>0</credit>
    				</operation2>
     
    				<operation3>
    					<intitule>Restaurant</intitule>
    					<debit>78.10</debit>
    					<credit>0</credit>
    				</operation3>
     
    				<operation4>
    					<intitule>Essence</intitule>
    					<debit>28</debit>
    					<credit>0</credit>
    				</operation4>
     
    				<operation5>
    					<intitule>SNCF</intitule>
    					<debit>9.20</debit>
    					<credit>0</credit>
    				</operation5>
     
    			</operations>
    	</compte>
    </labanquedusud>
    Et je souhaiterai le parser correctement.

    J'ai déjà un début mais ce n'est pas propre

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    		public void ChargerXML(String str, Form1 Feuille1)
    		{
    				Feuille1.label1.Text=str;
     
    				string FichierXML = str;
     
    				XmlNodeList ListeNoeud;
    			XmlNodeList ListeNoeud2;
     
    			try 
    			{
    				XmlDocument XmlDoc = new XmlDocument();
    				XmlDoc.Load(str+=".xml");
    				ListeNoeud = XmlDoc.SelectNodes("/labanquedusud/compte");
    			ListeNoeud2 = XmlDoc.SelectNodes("/labanquedusud/compte/operations/operation1");
     
    				foreach(XmlNode NoeudXml in ListeNoeud)
    				{
    					#region declarations
     
    					String numCpt;
    					String nomClt;
    					//String Operation1;
     
    					#endregion
     
    					numCpt=NoeudXml.ChildNodes.Item(0).InnerText;
    					nomClt=NoeudXml.ChildNodes.Item(1).InnerText;
    					//Operation1=NoeudXml.ChildNodes.Item(2).InnerText;
     
    					Console.WriteLine(numCpt);
    					Console.WriteLine(nomClt);
    					//Console.WriteLine(Operation1);
    					Feuille1.label1.Text=nomClt;
    				}
     
    				foreach(XmlNode NoeudXml2 in ListeNoeud2)
    				{
    					#region declaration
    						String operation1;
    						String operation2;
    					String operation3;
     
    					#endregion
     
     
     
     
    					operation1=NoeudXml2.ChildNodes.Item(0).InnerText;
    					operation2 = NoeudXml2.ChildNodes.Item(1).InnerText;
    					operation3= NoeudXml2.ChildNodes.Item(2).InnerText;
    					Console.WriteLine(operation1);
    					Console.WriteLine(operation2);
    					Console.WriteLine(operation3);
     
     
     
    				}
     
     
    			}
    			catch (Exception ex)
    				  {
    					Console.WriteLine(ex);
    				  }
     
    			}


    Ici on le voit bien si je veux retirer les opérations 1, 2, 3, 4 et 5 je dois refaire 5 fois le parsage
    C'est pas propre et c'est pas professionel

    Alors je ne vois pas comment procéder !

    Si vous pouviez m'aider car là je buggueee

    Merci de vos réponses
    Environnement: Visual Studio .net 2003 fr

    Framework: Version 1.1.4322

    OS: Microsoft Windows Server 2003 fr

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Par défaut
    Je ne comprends pas ton fichier XML :

    Je travaille pour ma part avec un fichier XML sans ordre de grandeur dans le nom des noeuds mais plutôt un attribut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <operations>
      <operation order="1">
    [...]
      </operation>
      <operation order="2">
    [...]
      </operation>
      <operation order="3">
    [...]
      </operation>
    </operations>
    Il suffit d'ouvrir le fichier XML, de se positionner sur operations
    et de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    operation=node.firstChild();
    while( operation != null ) {
    // je travaille sur l'operation courante
    [...]
     
      operation=operation.nextSibling(); // on prend son frere
    }

  3. #3
    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
    Citation Envoyé par murlock
    Je travaille pour ma part avec un fichier XML sans ordre de grandeur dans le nom des noeuds mais plutôt un attribut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <operations>
      <operation order="1">
    [...]
      </operation>
      <operation order="2">
    [...]
      </operation>
      <operation order="3">
    [...]
      </operation>
    </operations>
    +1

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Si ce n'est pas toi l'auteur du fichier XMl (en bref que tu ne peux pas appliquer la méthode proposée au dessus), il te reste toujours une solution :
    Code VB .Net (http://convertisseur.developpez.com pour convertir en C#)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim XmlDoc = new XmlDocument()
    XmlDoc.Load("")
    Dim Operations = XmlDoc.FirstChild.FirstChild
    For Item as Integer = 0 to 5
       Dim Opp as XmlElement = Operations.GetElementsByTagName("operation" + Item)(0)
       ' Je fais ce que je veux avec l'opération ex: Array(Item)=Opp
    Next

  5. #5
    Membre expérimenté Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Par défaut
    Salut,
    je travaille souvent avec des fichiers xml et le plus simple pour moi est de les charger dans un DataSet (.ReadXML).
    Après l'accès aux données est simple, rapide et maniable.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Par défaut
    Il y a aussi la solution avec XPath qui est bien pratique. Par contre, je ne sais pas les différences en le framework 1.1 et 2.0 sur les possibilités de traitement XML (dataset ou xpath)

  7. #7
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    OK merci pour vos réponses je vais regarder ça avec attention !
    Merci encore

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Par défaut
    Citation Envoyé par toniolol
    Salut,
    je travaille souvent avec des fichiers xml et le plus simple pour moi est de les charger dans un DataSet (.ReadXML).
    Après l'accès aux données est simple, rapide et maniable.

    Ca dépend de l'usage :
    sur l'appli que je refais, je garde le fichier XML en mémoire et chaque objet graphique pointe directement sur le noeud XML placé dans le tag :
    J'ajoute le handler sur les objets crée dynamiquement et pouf

    A chaque event de l'utilisateur, j'ai directement mes données (et ses fils)
    cf http://www.developpez.net/forums/sho...d.php?t=154379

  9. #9
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Bonjour !

    J'ai un petit souci au niveau du code de murlock

    j'ai fais ça :

    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
    				foreach(XmlNode NoeudXml2 in ListeNoeud2)
    				{
    					#region declaration
    						String operation1;
    						String operation2;
    					String operation3;
    						
    					#endregion
    
    					
    					
    					operation=operation.FirstChild();
    					while (operation != null)
    					{
    						operation=operation.NextSibling();
    					}
    
    					
    					//
    					
    
    						
    				}
    ces deux éléments sont soulignés et il me dit un truc pas cool

    'System.Xml.XmlNode.NextSibling' désigne 'propriété' où 'méthode' était attendu
    voila je ne comprend pas trop pourquoi il dit ça

    Merci de votre aide !!

  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
    Citation Envoyé par Laeticia
    ces deux éléments sont soulignés et il me dit un truc pas cool
    'System.Xml.XmlNode.NextSibling' désigne 'propriété' où 'méthode' était attendu
    FirstChild et NextSibling sont des propriétés et non des méthodes, enlève les parenthèses

  11. #11
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    FirstChild et NextSibling sont des propriétés et non des méthodes, enlève les parenthèses
    la honte

    C'était dans l'intelliscence et je l'ai meme pas vu

    bref merci

    Par contre une chose me soucie au niveau du code (et le compilateur aussi )

    lorsque je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    operation=node.FirstChild;
    while (operation != null)
    {
    //a faire
    operation=operation.NextSibling;
    }
    il fait son fou encore
    Utilisation d'une variable locale non assignée 'node'

    en fait je comprend pas car plus haut la variable node est déclarée entant que donc qu'est ce qui faut faire ? lui affecter quoi ?

    merci à vous

  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
    Citation Envoyé par Laeticia
    Par contre une chose me soucie au niveau du code (et le compilateur aussi ) lorsque je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    operation=node.FirstChild;
    while (operation != null)
    {
    //a faire
    operation=operation.NextSibling;
    }
    il fait son fou encore
    Utilisation d'une variable locale non assignée 'node'
    en fait je comprend pas car plus haut la variable node est déclarée entant que donc qu'est ce qui faut faire ? lui affecter quoi ?

    merci à vous
    Déclaré et assigné sont deux choses différentes

    Déclaration
    Assignation
    Dans ton cas, il manque une assignation avant de pouvoir utiliser l'objet XmlNode. L'objet est bien instancié ? L'instanciation est-elle conditionnelle ? Car suivant les chemins de code empruntés, l'assignation peut ne pas être effectuée.

  13. #13
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Déclaré et assigné sont deux choses différentes

    Déclaration
    Assignation
    Dans ton cas, il manque une assignation avant de pouvoir utiliser l'objet XmlNode. L'objet est bien instancié ? L'instanciation est-elle conditionnelle ? Car suivant les chemins de code empruntés, l'assignation peut ne pas être effectuée.


    justement j'ai hésité à rajouter 'faut le mettre à null ou quoi' lol

    bref ça c'est bon merci

    mais je peine encore

    ex me renvoie ça :
    {"L'expression passée à cette méthode doit donner un NodeSet." }
    alors il bloque sur ListeNoeud2 je vois pas trop pourquoi d'ailleur

    ici le fichier XML a jour :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?xml version="1.0"?>
     
    <labanquedusud>
    	<compte>
    		<numero_compte>123</numero_compte>
    		<nom_client>dupont</nom_client>
     
    			<operations>
     
    				<operation order="1">
    					<intitule>Virement</intitule>
    					<debit>0</debit>
    					<credit>100</credit>
    				</operation>
     
     
    				<operation order="2">
    					<intitule>Carrefour</intitule>
    					<debit>50.80</debit>
    					<credit>0</credit>
    				</operation>
     
     
    				<operation order="3">
    					<intitule>Restaurant</intitule>
    					<debit>78.10</debit>
    					<credit>0</credit>
    				</operation>
     
     
    				<operation order="4">
    					<intitule>Essence</intitule>
    					<debit>28</debit>
    					<credit>0</credit>
    				</operation>
     
     
    				<operation order="5">
    					<intitule>SNCF</intitule>
    					<debit>9.20</debit>
    					<credit>0</credit>
    				</operation>
     
    			</operations>
    	</compte>
    </labanquedusud>
    et ici la fonction :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    public void ChargerXML(String str, Form1 Feuille1)
     
    		{
    				Feuille1.label1.Text=str;
     
    				string FichierXML = str;
     
    				XmlNodeList ListeNoeud;
    			XmlNodeList ListeNoeud2;
     
    			try 
    			{
    				XmlDocument XmlDoc = new XmlDocument();
    				XmlDoc.Load(str+=".xml");
    				ListeNoeud = XmlDoc.SelectNodes("/labanquedusud/compte");
    				ListeNoeud2 = XmlDoc.SelectNodes("/labanquedusud/compte/operations/");
     
    				XmlNode operation;
     
    				foreach(XmlNode NoeudXml in ListeNoeud)
    				{
    					#region declarations
     
    					String numCpt;
    					String nomClt;
    					//String Operation1;
     
    					#endregion
     
    					numCpt=NoeudXml.ChildNodes.Item(0).InnerText;
    					nomClt=NoeudXml.ChildNodes.Item(1).InnerText;
    					//Operation1=NoeudXml.ChildNodes.Item(2).InnerText;
     
    					Console.WriteLine(numCpt);
    					Console.WriteLine(nomClt);
    					//Console.WriteLine(Operation1);
    					Feuille1.label1.Text=nomClt;
    				}
     
    				foreach(XmlNode NoeudXml2 in ListeNoeud2)
    				{
    					#region declaration
    						String operation1;
    						String operation2;
    					String operation3;
     
    					#endregion
     
    					XmlNode node;
     
    					node=null;
     
     
    					operation=node.FirstChild;
    					while (operation != null)
    					{
    						operation=operation.NextSibling;
    					}
     
     
    					operation1=NoeudXml2.ChildNodes.Item(0).InnerText;
    					operation2 = NoeudXml2.ChildNodes.Item(1).InnerText;
    					operation3= NoeudXml2.ChildNodes.Item(2).InnerText;
    					Console.WriteLine(operation1);
    					Console.WriteLine(operation2);
    					Console.WriteLine(operation3);
     
     
     
    				}
     
     
    			}
    			catch (Exception ex)
    				  {
    					Console.WriteLine(ex);
    				  }
     
    			}
    en fait je comprend ce qu'il me dit
    le resultat de ce que je lui passe n'est pas un nodeset donc ce n'est pas un résultat de noeuds. Pourtant c'est bien un résultat de noeuds ? (tete de noeud )
    Le fait d'avoir rajouté des order id" " modifie la hierarchie des noeuds ?

    oui je suis pas douée

    Merci de votre aide !!!

  14. #14
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeNoeud2 = XmlDoc.SelectNodes("/labanquedusud/compte/operations/operation");

  15. #15
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeNoeud2 = XmlDoc.SelectNodes("/labanquedusud/compte/operations/operation");

    merci

    mais il y a un mais pour changer
    donc je compile ca passe
    j'entre le nom de mon fichier xml dans mettre .xml ca passe il ouvre le fichier : cool

    il commence le parsage
    1er parsage nickel client tout ça parfait :

    Il arrive au second parsage
    ListeNoeud2 ca passe (logique maintenant )

    arrivé au moment ou il doit recupere le firstchild : la il fait la tête

    en fait il bloque sur ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    operation=node.FirstChild;
    il fait pareil avec ca ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    operation=operation.FirstChild;
    alors ex ramène ça :
    System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
    là il est pas content là
    C'est du pur objet et j'ai pas pied là

    faut faire un new() quelque part ?

    (on sait jamais )

    Merci messieurs dames

  16. #16
    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
    Tu as du code qui ne sert à rien dans ton second foreach, tout du moins si j'ai bien compris ce que tu cherches à faire. Le FirstChild et NextSibling ne sont pas utiles puisque dans ListeNoeud2 tu as directement tous les noeuds que tu cherches à traiter.

    Avec ceci ca devrait passer beaucoup mieux
    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
    foreach (XmlNode NoeudXml2 in ListeNoeud2)
    {
        #region declaration
        String operation1;
        String operation2;
        String operation3;
     
        #endregion
     
        operation1 = NoeudXml2.ChildNodes.Item(0).InnerText;
        operation2 = NoeudXml2.ChildNodes.Item(1).InnerText;
        operation3 = NoeudXml2.ChildNodes.Item(2).InnerText;
        Console.WriteLine(operation1);
        Console.WriteLine(operation2);
        Console.WriteLine(operation3);
    }
    Il va falloir prendre des cours

  17. #17
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Tu as du code qui ne sert à rien dans ton second foreach, tout du moins si j'ai bien compris ce que tu cherches à faire. Le FirstChild et NextSibling ne sont pas utiles puisque dans ListeNoeud2 tu as directement tous les noeuds que tu cherches à traiter.

    Avec ceci ca devrait passer beaucoup mieux
    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
    foreach (XmlNode NoeudXml2 in ListeNoeud2)
    {
        #region declaration
        String operation1;
        String operation2;
        String operation3;
     
        #endregion
     
        operation1 = NoeudXml2.ChildNodes.Item(0).InnerText;
        operation2 = NoeudXml2.ChildNodes.Item(1).InnerText;
        operation3 = NoeudXml2.ChildNodes.Item(2).InnerText;
        Console.WriteLine(operation1);
        Console.WriteLine(operation2);
        Console.WriteLine(operation3);
    }
    Il va falloir prendre des cours
    hiii
    c'est pas vraiment ça en fait
    car la c'est pas en fait la vraie logique que je veux mettre en place (oui oui j'ai pas honte de parler de logique )

    ce que je souhaiterai c'est ca ( un shéma c'est plus simple )

    DAns un tableau (dataset ou encore listview (pour compliquer d'ailleurs)) il faut que l'on affiche les opérations : les order les uns sous les autres

    Encore merci

    (en vb j'arrive pas trop mal à le faire de parser (mais pas de parser avec plusieurs niveaux comme ça mais bon faut bien progresser c'est pas marrant sinon )

  18. #18
    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
    Je ne vois pas où est le problème. Dans le second foreach tu vas avoir les informations de chaque opération. Rien ne t'empêche ensuite de gérer ces informations comme tu le souhaites (objet métier, DataTable, ...).

  19. #19
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Je ne vois pas où est le problème. Dans le second foreach tu vas avoir les informations de chaque opération. Rien ne t'empêche ensuite de gérer ces informations comme tu le souhaites (objet métier, DataTable, ...).

    hmm hmm
    je dois pas être fine en fait

    je comprend pas

    comment faire pour se déplacer parmis les orders ?

    parce que la sur les 3 premieres variables j'obtiens bien les 3 premieres informations ca ok, mais si par exemple je créer une 4eme variable et que je fais pour tester un Item(3), ben il est pas content parce que c logique ça n'existe pas !

    je vois pas comment en fait

    Merci de votre aide !

  20. #20
    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
    Ah d'accord, là je comprends mieux
    Utilise la propriété ChildNodes du XmlNode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach (XmlNode node in ListeNoeud2)
    {
        Console.Out.WriteLine(node.Name + node.Attributes[0].InnerText);
        foreach (XmlNode child in node.ChildNodes)
        {
             Console.Out.WriteLine(child.Name + " : " + child.InnerText);
        }
        Console.Out.WriteLine();
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XML] Parser du XML plus facilement
    Par gilloddon dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/09/2011, 20h55
  2. XML plus rapide a parser selon sa structure?
    Par tamiii dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 26/09/2009, 07h31
  3. [SAX] NoSuchElementException sur parser XML
    Par iceman dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 17/05/2004, 14h42
  4. parser xml
    Par billout dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/11/2003, 11h08
  5. Parser XML
    Par miloux32 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/07/2003, 03h17

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