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

C# Discussion :

Obtenir le dernier attribut d'un noeud dans un fichier XML (C#)


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    autodidacte
    Inscrit en
    Avril 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Avril 2016
    Messages : 22
    Points : 14
    Points
    14
    Par défaut Obtenir le dernier attribut d'un noeud dans un fichier XML (C#)
    Bonjour,

    j'ai longuement navigué pour crée mon projet, mais alors la je sèche.

    je voudrais récupérer le dernier attribut ID d'un noeud: <Ajout ID="1">

    voila mon fichier XML de test:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <Expedition_RST>
      <Ajout ID="1">
        <Date_Ajout>23/04/2016 23:07:47</Date_Ajout>
        <N_RST>0416 001234</N_RST>
        <default>G.1.2</default>
        <descritpion>-1200Hz</descritpion>
      </Ajout>
      <Ajout Id="12">
        <Date_Ajout>23/04/2016 23:08:57</Date_Ajout>
        <N_RST>0416 123456</N_RST>
        <default>G.1.2</default>
        <descritpion>-1150Hz</descritpion>
      </Ajout>
    </Expedition_RST>

    j'ai essayer plusieurs solution trouver sur MSDN ou bien sur des tutos de particulier mais rien ne fonctionne.

    cette méthode me paraissait plutôt correcte et courte mais elle me crée une exception non gérer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Créer une instance du document XML et charger les données XML.
    XmlDocument doc = new XmlDocument();
    doc.Load(LienFichierXML);
     
    // Récupération du dernier ID enregistré
    string lastid = doc.DocumentElement.LastChild.Attributes["ID"].Value.ToString();
     
    // affiche ma valeur pour vériffier
    MessageBox.Show(lastid);
    avez vous des suggestions ?

    merci d'avance pour le temps que vous me consacrerez.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Concrètement, dans ton exemple tu souhaite récupérer quoi ?
    1, 12, ... ?

    Quelle exception est générée et à quelle ligne ?

    L'exception est généré pacque tu n'a pas respecté la casse de "Id" donc il n'existe pas dans le 'lastchild', d’ailleurs il serait bon que tu standardise ton xml pour pas que ça ne puisse se produire.

  3. #3
    Membre à l'essai
    Homme Profil pro
    autodidacte
    Inscrit en
    Avril 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Avril 2016
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Je voudrais toujours récupérer l'ID le plus bas dans le fichier. dans l'exemple que j'ai montrer je voudrai récupérer le 12, et si il y en avait eu un après lui le suivant ainsi de suite

    pour pouvoir incrémenter cette valeur obtenue pour assigner le prochain ID. Avec ma méthode ajouter qui est déjà fonctionnelle.

    L'exeption non gerer est arriver sur cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     string lastid = doc.DocumentElement.LastChild.Attributes["ID"].Value.ToString();
    le message d'erreur est :

    Une exception non gérée du type 'System.NullReferenceException' s'est produite dans Genere_code_barre.exe
    Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.

    est-je fais une erreur de code ( vue tout les tutos que j'ai voulu suivre sa ce peut que je me suis noyer dans la façon de faire)
    ou connais-tu une autre méthode pour le faire ?


    Outre mon soucis déjà exposer ici, concrètement j'ai du mal à assimiler comment ce positionner sur le nœud désirer.

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    L'exception est généré pacque tu n'a pas respecté la casse de "Id" donc il n'existe pas dans le 'lastchild', d’ailleurs il serait bon que tu standardise ton xml pour pas que ça ne puisse se produire.

    Tu lit tout ce qu'on écrit ?
    Dans 'Expedition_RST' le dernier enfant n'a pas d'attribut 'ID' mais 'Id' donc exception 'System.NullReferenceException'.

  5. #5
    Membre à l'essai
    Homme Profil pro
    autodidacte
    Inscrit en
    Avril 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : autodidacte

    Informations forums :
    Inscription : Avril 2016
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Salut,

    J’étais en déplacement professionnel désoler de pas avoir répondue avant.

    J'ai donc bien relue ton premier Post et j'avoue ne pas avoir prêter attention à ta dernière suggestion. méaculpa

    Le code XML une fois unifier mon code est totalement opérationnel désoler de cette erreur futile (erreur bête qui m'a fait perdre des heures..), mais merci pour ta réactivité et ton aide

    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDOM] Menage de certains noeuds dans mon fichier XML
    Par deadliff dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/08/2007, 16h21
  2. [DOM] Modifier un noeud dans un fichier XML
    Par erivoil dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/01/2007, 12h11
  3. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38
  4. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

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