Problème récupération nom balise en c#

Fermé
mats09 Messages postés 19 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 13 janvier 2011 - 10 mai 2010 à 15:23
mats09 Messages postés 19 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 13 janvier 2011 - 10 mai 2010 à 17:20

Bonjour,

Voici mon code :
------------------------------------------------------------------------------------------------------------
******************************Code C#******************************
------------------------------------------------------------------------------------------------------------
string path = "XmlBDD.xml";
XPathDocument doc = new XPathDocument(path);
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator MaNav = nav.Select(nav.Compile("SOTHIS"));
XPathNavigator nodesNavigator = MaNav.Current;
XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text,false);
while (nodesText.MoveNext())
{
Console.WriteLine(MaNav.Current.Name);
Console.WriteLine(nodesText.Current.Value);
}
-------------------------------------------------------------------------------------------------------------
***************************Doc XML**********************************
-------------------------------------------------------------------------------------------------------------
<SOTHIS>
<Dossier>
<Numero_Sinistre>101M23602E</Numero_Sinistre>
<Num_Police>660209002775C02</Num_Police>
<Date_Mission>2010-07-05</Date_Mission>
<Num_Ordre>0003</Num_Ordre>
<Date_Sinistre>2010-12-12</Date_Sinistre>
<Nature_Evenement>Circulation</Nature_Evenement>
<Nature_Garantie>PAS D'ASSURANCE DOMMAGE</Nature_Garantie>
</Dossier>
<Assureur>
<Code_GTA_Compagnie>A76000011350</Code_GTA_Compagnie>
<Nom_Compagnie>MATMUT ASSURANCES(418)</Nom_Compagnie>
<Adresse_Compagnie1>81 Route de Narbonne</Adresse_Compagnie1>
<Adresse_Compagnie2>Appt7</Adresse_Compagnie2>
<Adresse_Compagnie3></Adresse_Compagnie3>
<Code_Postal>31400</Code_Postal>
<Ville_Compagnie>Toulouse</Ville_Compagnie>
<Tel_Assureur>0561214512</Tel_Assureur>
<Mail_Assureur>matmut@gmail.com</Mail_Assureur>
<Fax_Assureur>2565454756</Fax_Assureur>
</Assureur>
<Courtier>
<Nom_Courtier>Franleut</Nom_Courtier>
<Adresse_Courtier1>89 Rue du Pont de Michel</Adresse_Courtier1>
<Adresse_Courtier2></Adresse_Courtier2>
<Adresse_Courtier3></Adresse_Courtier3>
<Code_Postal>45800</Code_Postal>
<Ville>Saint Exupery</Ville>
<Tel_Domicile>0564211415</Tel_Domicile>
<Tel_Portable>0656252321</Tel_Portable>
<Mail_Courtier>Franleut@hotmail.fr</Mail_Courtier>
<Fax_Courtier>0556547885</Fax_Courtier>
</Courtier>
<Reparateur>
<Nom_Reparateur>Dupond</Nom_Reparateur>
<Adresse_Reparateur1>2035 Avenue Julien Penchont</Adresse_Reparateur1>
<Adresse_Reparateur2></Adresse_Reparateur2>
<Adresse_Reparateur3></Adresse_Reparateur3>
<Code_Postal_Reparateur>66000</Code_Postal_Reparateur>
<Ville_Reparateur>Perpignan</Ville_Reparateur>
<Siret_Reparateur>25698745896564</Siret_Reparateur>
<Tel_Domicile_Reparateur>0561014748</Tel_Domicile_Reparateur>
<Tel_Portable_Reparateur>0661012568</Tel_Portable_Reparateur>
<Mail_Reparateur>Dupond@gmail.com</Mail_Reparateur>
<Fax_Reparateur>0564212325</Fax_Reparateur>
</Reparateur>
</SOTHIS>
-------------------------------------------------------------------------------------------------------------

Mon problème est que ces informations, je dois les intégrer à une base de donnée et je voudrai faire une requête 'insert' en récupérant bien sur les différentes informations (Nom table,colonne,donnée) mais ce code là ne permet pas de récupérer le nom de la balise ou je récupère les informations....Je fais un apell à l'aide !!!!!^^

5 réponses

V4lkYr Messages postés 38 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 27 mai 2010
10 mai 2010 à 15:34
salut

d'abord je te conseille de ne pas divulguer les informations (adresses mail, N° etc...) sur un forum ;)

si tu es sous linux, tu peux faire des scripts en perl par exemple qui recherchent des patrons de phrases (tu délimite par les balises) et qui récupèrent les informations, et t'as plus qu'à les ajouter
0
mats09 Messages postés 19 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 13 janvier 2011
10 mai 2010 à 15:42
Les informations sont totalement fausse et prises au hasard donc à tous ceux qui essayerai dommage vous risquez de tomber sur tous sauf l'assurance mdr.......Je travaille sur 7 comme OS et je code en c#. Si tu veux quand je compile, mon terminal renseigne les données mais ne me donne pas le nom de la balise alors que la ligne

Console.WriteLine(MaNav.Current.Name);

devrai le faire!!!!
0
V4lkYr Messages postés 38 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 27 mai 2010
10 mai 2010 à 16:46
désolé je passais par là et je donnais juste un avis ^^

je ne connais pas le C# mais je peux essayer de t'aider...

genre ici https://docs.microsoft.com/en-us/dotnet/api/system.console.writeline?redirectedfrom=MSDN&view=netframework-4.8

je vois "Writes the current line terminator to the standard output stream."

je ne vois pas que ça te permet de la récupérer...
par contre dans MaNav.Current.Name, le nom de ta balise est stockée, non ? si oui tu peux là récupérer dès ici je comprend pas trop ...
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
10 mai 2010 à 16:52
Ton erreur vient de là :

Console.WriteLine(MaNav.Current.Name); 



à remplacer par :
Console.Write(nodesText.Current.Name);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mats09 Messages postés 19 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 13 janvier 2011
10 mai 2010 à 17:20
Merci à tous pour vos réponse et jeangilles ton idée me paraissait excellente mais n'a pas étais fructueuse. Il fallait tous simplement faire un retour sur le parent car seul le nodesText.Current.Name peut m'afficher quelque chose..
..
0