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

  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

  7. #7
    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 pense que tu puisse le faire, il faudrais que tu le fasse toi méme en comparant la date de deux noeud. et si elle est supérieur et bien tu le détruit et tu le reconstruit aprés

+ 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