Lire fichier xml [Résolu]

thefolin - 3 juil. 2013 à 14:18 - Dernière réponse :  thefolin
- 3 juil. 2013 à 15:01
Bonjour a tout le monde

Mon probleme est le suivant : Lire un fichier XML.
J'ai un soucie de lecture que j'ai réussis a régler a moitie.Je m'explique dans mon xml j'ai du enlever une ligne pour ce que mon code lise mon xml voici la ligne que j'ai enlevé :
<ME610101 xmlns="http://www.darva.com/messages/auto/dem/" version="3.0" >

J'ai remplacée par
<ME610101>


Le probleme vient du
xmlns="http://www.darva.com/messages/auto/dem/" version="3.0"

Mon bout de code ne veut pas lire cette balise et s’arrête. Du coup mon xml n'est pas lue

Je doit garder cette ligne
<ME610101 xmlns="http://www.darva.com/messages/auto/dem/" version="3.0" >



Ici le code qui fonctionne parfaitement avec le XML ci-dessous

string path = @"..\\..\\text.xml";
            XDocument doc = XDocument.Load(path);

            var feeds = from feed in doc.Element("ME610101").Descendants("SE0010201")
                        select feed.Element("DE00380101").Value + feed.Element("DE00390101").Value;

            foreach (string chaine in feeds)
            {
                Console.WriteLine(chaine);
            }

Voici le fichier XML sans le
<ME610101 xmlns="http://www.darva.com/messages/auto/dem/" version="3.0" >


<?xml version="1.0" encoding="UTF-8"?>
<ME610101 >
 <SE0010201>
  <DE00380101>T79000012631</DE00380101>
  <DE00390101>D31000025246</DE00390101>
  <DE00440101>XXX</DE00440101>
</ME610101 >


Une idée ou des piste de solution.

Merci d'avance de votre contribution dans ce probleme.
Afficher la suite 

1 réponse

Répondre au sujet
+3
Utile
Je m'excuse d'avoir poser la question j'ai trouver la solution.

Mon problème était tout simple ><. Je ne spécifiais pas le namespace.

Voici le code finit :

string path = @"..\\..\\text.xml"; // Emplacement du fichier xml
            XDocument doc = XDocument.Load(path); // chargement du fichier xml
            XNamespace xmlns = "http://www.darva.com/messages/auto/dem/"; // On spcécifie le namespace

            // Varible qui contient ma requete SELECT on commence par le début du xml avec doc.Element(xmlns+"ME610101") 
            var feeds = from feed in doc.Element(xmlns+"ME610101").Descendants(xmlns+"SE0010201")
                        select feed.Element(xmlns + "DE00380101").Value + feed.Element(xmlns + "DE00390101").Value;

            foreach (string chaine in feeds)
            {
                Console.WriteLine(chaine); // Ici pour voir les données que l'on recup 
            }


Voila il faut simplement utiliser
 XNamespace xmlns ="" // mettre ton namespace
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de thefolin

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.