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

mats09 Messages postés 26 Statut Membre -  
mats09 Messages postés 26 Statut Membre -

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 40 Statut Membre
 
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 26 Statut Membre
 
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 40 Statut Membre
 
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   Statut Membre Dernière intervention   186
 
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 26 Statut Membre
 
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