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

Composants VCL Delphi Discussion :

[XMLDocument] Violation d'accès


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Points : 16
    Points
    16
    Par défaut [XMLDocument] Violation d'accès
    Bonjour,
    Je parcoure un document XML via un XML document sur delphi 7 de noeud en noeud.
    J'utilise pour cela les propriétés de iXMLNode, mais lorsque j'arrive sur un noeud, même si celui si à la propriété hasChildNodes à true, je ne peux pas lire ses noeuds enfants, j'obtiens une violation.
    En gros, ce noeud possède des noeuds enfants mais j'ai une exception sur ceNoeud.childNodes[0] ou sur ceNoeud.childNodes.count alors que ceNoeud.hasCHildNodes=true
    C'est la première fois que j'essaie de lire un fichier XML, pouvez-vous m'éclairer SVP.

  2. #2
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Non c'est bizarre, fait voir ton code de parcours du XML ( si ce n'est pas trop gros ) ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Si tu veux pour le moment l'entreprise m'a filé un fichier XML dont j'essaie de comprendre la structure et en même temps j'essaie de me familiariser avec la lecture du XML.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Var
      XMLDoc:TXMLDocument;
      No:IXMLNode;
      liste:IXMLNodeList;
    begin
    //j'associe le fichier XML
    XmlDoc := TXMLDocument.Create(nil);
    XMLDOc.fileName:=adresseFichierXML;
    XMLDOc.active:=true;
    {on cherche le noeud de nom nomNoeud via une fonction récursive trouveNoeud (elle le trouve et apres y'a eu violation d'accès sur ce noeud dont j'essaie de comprendre le type   }
    No:=trouveNoeud(XMLDOc.node,nomNoeud);
    // ici quand j'utilise les propriétés (childNodes,attributes...) sur ce noeud No
    //y'a violation
    XMLDoc.Destroy;
    end;

  4. #4
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    On peut avoir le source de TrouveNoeud ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    J'ai repris le même principe qu'une fonction donnée dans le forum; mais le problème n'est pas là car même en n'utilisant pas cette fonction et en allant sur ce noeud direcement via les noeuds enfants, le problème survient !
    Donc comment savoir si un noeud à des attributs ou des noeuds fils sans violation dans mon cas?

  6. #6
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Si Nono40 te demande ça (enfin, je pense), c'est qu'il y a de fortes chances que la fonction retourne nil. Alors montre nous comment tu sélectionne ton noeud.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Comment retournerait-elle nil alors qu'elle retourne un noeud nommé nomNoeud? j'ai vérifié... On a bien en sortie No.nodeName=nomNoeud !
    La fonction est celle donnée ici:
    http://www.developpez.net/forums/vie...light=nodename
    Et je sais aussi que ce noeud est de type Element

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Je viens de m'apercevoir que le problème n'est pas directement sur le noeud en fait mais sur le XML document !
    En effet, si apres avoir fait appel à la fonction trouveNoeud je veux faire "XMLDoc.active:=false" ou "XMLDoc.free" y'a violation !

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    C'est bon il fallait simplement faire XMLDoc:=tXMLDocument.create(Form1) et non create(nil)

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

Discussions similaires

  1. XMLDocument.LoadFromXML : Violation d'accès
    Par mickael.be dans le forum Composants VCL
    Réponses: 16
    Dernier message: 27/03/2008, 02h43
  2. ReportPrinterDialog (QR2) : violation d'accès..
    Par Harry dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 14h04
  3. requete / violation d'accès
    Par marie253 dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/08/2004, 13h29
  4. Violation d'acces apres Execute
    Par SegmentationFault dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 10/08/2004, 16h23
  5. Violation d'accès apres Close
    Par SegmentationFault dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/07/2004, 16h46

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