[C#][1.1]Parser XML plus proprement
Bonjour !
J'ai le fichier XML Suivant :
Code:
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:
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 :D car là je buggueee :D
Merci de vos réponses ;)
Citation:
Environnement: Visual Studio .net 2003 fr
Framework: Version 1.1.4322
OS: Microsoft Windows Server 2003 fr