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++Builder Discussion :

Problème sur un TXMLDocument


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut Problème sur un TXMLDocument
    Hello

    j'ai un petit souci de violation d'accés, lors d'une lecture sur un fichier xml

    voici mon fichier xml :

    <?xml version="1.0" encoding="UTF-8"?>

    <TEST>
    <composant name="TntLabel1" type="TTntLabel" text="クノロジに関する情"/>
    </TEST>

    et voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      TXMLDocument * mrXMLDoc = new TXMLDocument("c:\\test.xml");
      mrXMLDoc->DOMVendor = GetDOMVendor("MSXML");
      mrXMLDoc->Active = True;
      mrXMLDoc->LoadFromFile("c:\\test.xml");
     
      TntLabel1->Caption = mrXMLDoc->DocumentElement->ChildNodes->FindNode("TEST")->ChildNodes->FindNode("composant")->GetAttribute("text");
    l'erreur se produit lors du

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     IXMLNode * doc =  mrXMLDoc->DocumentElement;
    quelqu'un aurait une idée pour résoudre , mon problème ? est je mal initialisé ma variable mrXMLDoc ?

    merci d'avance pour votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut
    je viens de trouver la solution gràce à ce post

    http://www.developpez.net/forums/showthread.php?t=43335

    merci à GreyBird

    Donc voici le résultat :

    fichier xml :

    <Forms>
    <Form1>
    <composant1 name="TntLabel1" type="TTntLabel" text="クノロジに関する情"/>
    <composant2 name="TntLabel1" type="TTntLabel" text="クノロジに関する情"/>
    </Form1>
    <Form2>
    <composant1 name="TntLabel1" type="TTntLabel" text="クノロジに関する情"/>
    <composant2 name="TntLabel1" type="TTntLabel" text="クノロジに関する情"/>
    </Form2>
    </Forms>

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      _di_IXMLDocument XMLDoc = LoadXMLDocument("c:\\test.xml");
      IXMLNode * doc =  XMLDoc->DocumentElement;
      IXMLNode * node = doc->ChildNodes->FindNode("Form2");
      TntLabel1->Caption = node->ChildNodes->FindNode("composant2")->GetAttribute("text");

  3. #3
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    lut,

    je viens de me mettre au TXMLdocument je poste à la suite

    j'ai un xml suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <App>
    <lstUsers>
    	<user name='ABRAHAM' prenom='Karine' Sexe='feminin' Adresse='' Tel='0616136525' Mail=''>
    		<prestation name='test' prix='0,2'/>
    	</user>
    	<user name='toto' prenom='kk' Sexe='feminin' Adresse='' Tel='0611010015' Mail=''/>
    	<user name='titi' prenom='llll' Sexe='masculin' Adresse='' Tel='06161010005' Mail=''/>
    	<user name='tonono' prenom='llll' Sexe='masculin' Adresse='' Tel='06161010005' Mail=''/>
    </lstUsers>
    </App>
    mon code est identique au poste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    XMLDocument1->FileName = "c:\\test.xml";
    XMLDocument1->Active = true;
     
    IXMLNode * doc =  XMLDocument1->DocumentElement;
    IXMLNode * node = doc->ChildNodes->FindNode("lstUsers");
    Edit3->Text = node->ChildNodes->GetCount();
     
    Edit1->Text = node->ChildNodes->FindNode("user")->GetAttribute("name");
    Comment scruter les différents user ? je ne trouve pas de fonction Next()?

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Par défaut
    tu peut récupérer la liste des user

    en utilisant la méthodes GetChildnodes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IXMLNodeList * users = doc->GetChildNodes()
    (il me semble que la méthode fait partie du "documentElement" mais je suis pas sur ^^)

    ensuite tu peut faire un for de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0 à node->ChildNodes->GetCount();

  5. #5
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    Oui merci ct la piste que je voulais avoir

    voici donc le code pour parcourir les "user" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    XMLDocument1->FileName = "c:\\test.xml";
    XMLDocument1->Active = true;
     
    IXMLNode * doc =  XMLDocument1->DocumentElement;
    IXMLNode * lstUser = doc->ChildNodes->FindNode("lstUsers");
    int nbUsrer = lstUser->ChildNodes->GetCount();
     
    for(i=0;i < nbUsrer;i++)
       StringGrid->Cells[0][i] = lstUser->ChildNodes->Nodes[i]->GetAttribute("name");
    ++

  6. #6
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    re une autre petit question?

    Est-il possible de trier mon .xml en fonction des dates ou ordre alphabétique?

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <App>
    <lstUsers>
    	<user name='toto' prenom='kk' Sexe='feminin' Adresse='' Tel='0611010015' Mail=''/>
    	<user name='ABRAHAM' prenom='Karine' Sexe='feminin' Adresse='' Tel='0616136525' Mail=''>
    		<prestation date='01/02/2007' name='test' prix='0,2'/>
    		<prestation date='05/02/2007' name='test' prix='0,2'/>
    		<prestation date='02/02/2007' name='test' prix='0,2'/>
    	</user>
    	<user name='titi' prenom='llll' Sexe='masculin' Adresse='' Tel='06161010005' Mail=''/>
    	<user name='tonono' prenom='llll' Sexe='masculin' Adresse='' Tel='06161010005' Mail=''/>
    </lstUsers>
    </App>
    vers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <App>
    <lstUsers>
    	<user name='ABRAHAM' prenom='Karine' Sexe='feminin' Adresse='' Tel='0616136525' Mail=''>
    		<prestation date='01/02/2007' name='test' prix='0,2'/>
    		<prestation date='02/02/2007' name='test' prix='0,2'/>
    		<prestation date='05/02/2007' name='test' prix='0,2'/>
    	</user>
    	<user name='titi' prenom='llll' Sexe='masculin' Adresse='' Tel='06161010005' Mail=''/>
    	<user name='toto' prenom='kk' Sexe='feminin' Adresse='' Tel='0611010015' Mail=''/>
    	<user name='tonono' prenom='llll' Sexe='masculin' Adresse='' Tel='06161010005' Mail=''/>
    </lstUsers>
    </App>
    est-il possible de trier avec un TXMLdocument? ou autre dans l'affichage d'une grille?

    merci

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

Discussions similaires

  1. Problème sur la recherche fulltext en v4 !
    Par poppa dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/05/2004, 23h06
  2. Problème sur fiche MDIchild
    Par nivet dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/01/2004, 08h07
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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