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 :

TXMLDocument, un petit problème de rien du tout!


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut TXMLDocument, un petit problème de rien du tout!
    Bonsoir tout le monde.
    Depuis que j'ai résolu mon précédent problème, à savoir la création d'un fichier XML non vide, je me heure a un second souci. J'aimerais généré un fichier xml qui serais ainsi constituer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="UTF-8"?>
    <JDR>
          <Jeu>
                <Jeu Nom="Talundra"/>
                <Jeu Concepteur="Elibom"/>
          <Jeu/>
    </JDR>
    Pour le moment, j'arrive avec le bout de code qui suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            //Créer un fichier xml
            Form1->XMLDocument1->Active = true;  // Activer le document avant d'écrire dedans
     
            //Crée un déclaratif
            Form1->XMLDocument1->Version = "1.0";
            Form1->XMLDocument1->Encoding = "UTF-8";
     
            _di_IXMLNode Balise;
            Balise = Form1->XMLDocument1->CreateNode(WideString("JDR"));
                    Balise->ChildNodes->Add(Form1->XMLDocument1->AddChild(WideString("Jeu")));
     
            Form1->XMLDocument1->ChildNodes->Add(Balise);
    à générer le fichier XML suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="UTF-8"?>
    <JDR>
          <Jeu/>
    </JDR>
    Le principal problème c'est que je n'arrive pas à ajouter au noeud Jeu la suite des informations. Quelqu'un aurait il une idée à me soumettre pour y arrivé, ou le cas échéant, une piste à explorer .
    Merci.

  2. #2
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Tu fait comme ça

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    #include <vlc.h>
     
    // Créer un fichier xml
    Form1->XMLDocument1->Active = true;  // Activer le document avant d'écrire dedans
     
    // Crée un déclaratif
    Form1->XMLDocument1->Version = "1.0";
    Form1->XMLDocument1->Encoding = "UTF-8";
     
     
    // Création du noeud JDR
    _di_IXMLNode NoeudJDR;
    NoeudJDR = Form1->XMLDocument1->CreateNode(WideString("JDR"));
     
    // Création du noeud JEU fils du noeud JDR
    _di_IXMLNode NoeudJeu;
    NoeudJeu = Form1->XMLDocument1->CreateNode(WideString("Jeu"));
     
    // Création du noeud Jeu Nom noeud fils du noeud JEU
    _di_IXMLNode NoeudJeuNom;
    NoeudJeuNom = Form1->XMLDocument1->CreateNode(WideString("Jeu"));
     
    // On ajoute la propriété NOM à ce moeud
    NoeudJeuNom->SetAttribute(WideString("Nom"), WideString("Talundra"));
     
    // On ajoute le noeud Jeu Nom comme noeud fils du noeud Jeu
    NoeudJeu->ChildNodes->Add(NoeudJeuNom);
     
     
    // Création du noeud Jeu Concepteur noeud fils du noeud JEU
    _di_IXMLNode NoeudJeuConcepteur;
    NoeudJeuConcepteur = Form1->XMLDocument1->CreateNode(WideString("Jeu"));
     
    // On ajoute la propriété Concepteur à ce moeud
    NoeudJeuConcepteur->SetAttribute(WideString("Concepteur"), WideString("Elibom"));
     
    // On ajoute le noeud Jeu Concepteur comme noeud fils du noeud Jeu
    NoeudJeu->ChildNodes->Add(NoeudJeuConcepteur);
     
    // On ajoute le noeud Jeu comme noeud fils du noeud JDR
    NoeudJDR->ChildNodes->Add(NoeudJeu);
     
    // On ajoute le noeud JDR comme noeud racine du document XML
    Form1->XMLDocument1->ChildNodes->Add(NoeudJDR);
    Par contre je vois pas l'intérêt de créer un noeud Jeu, et ensuite de créer pour chaque attributs de ton Jeu, un noeud fils jeu avec un attribut.

    Pourquoi ne metterais-tu pas tes attributs directement dans ton noeud Jeu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="UTF-8"?>
    <JDR>
          <Jeu Nom="Talundra" Concepteur="Elibom"><Jeu/>
    </JDR>

  3. #3
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    Et si tu ajoute une description de 100 lignes par exemple?. ta méthode fonctionnera ?
    Moi je voyais bien un truc dans le genre:
    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
    16
    17
    18
    19
     
    <?xml version="1.0" encoding="UTF-8"?>
    <JDR>
          <Jeu>
              <Jeu Nom="Talundra"/>
              <Jeu Concepteur="Elibom"/>
              <Jeu Desciption>
                    100 lignes de textes de description
              <Jeu Desciption>
          <Jeu/>
          <Jeu>
              <Jeu Nom="Arak Aram"/>
              <Jeu Concepteur="Sephiroth 2000"/>
              <Jeu Desciption>
                    100 lignes de textes de description
              <Jeu Desciption>
          <Jeu/>
          etc...
    </JDR>

  4. #4
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    J'ai jamais testé avec un contenu aussi grand.

    Mais tu peux essayer en faisant ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    // Création du noeud Jeu Description noeud fils du noeud JEU
    _di_IXMLNode NoeudJeuDescription;
    NoeudJeuDescription = Form1->XMLDocument1->CreateNode(WideString("Jeu Description"));
     
    AnsiString Description = "100 lignes de textes de description";
     
    // On renseigne la valeur du noeud
    NoeudJeuConcepteur->SetNodeValue(Description);
     
    // On ajoute le noeud Jeu Description comme noeud fils du noeud Jeu
    NoeudJeu->ChildNodes->Add(NoeudJeuDescription);
    Ensuite à toi d'adapter pour que cela te construire tous tes noeuds jeux.
    Par contre si tu as des retours à la ligne dans ton texte, je ne sais pas comment cela se passe

  5. #5
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    Effectivement, il y a des retours à la ligne.
    Autre fois j' utilisait les fichiers ini mais hélas une ligne est déjà pas mal limité alors 100 lignes avec des saut dedans. Donc seule possibilités c'est de passé par un xml qui lui n'apparait pas limité en terme de ligne et de saut de ligne.
    Voila pourquoi je compte passé par ce composant.

  6. #6
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Je comprend bien

    Ecoute teste mais la je peux pas te dire ce que ca va sortir avec des "\n" dans le texte.

    Ou alors il faut faire un noeud par ligne, mais ca va vite devenir ingérable.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/11/2007, 15h03
  2. Petit prob de rien du tout :)
    Par marie4449 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/03/2007, 14h46
  3. [IE-FF]Un tout petit problème, mais très énervant.
    Par Woodgate dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 22/02/2007, 23h37
  4. Réponses: 4
    Dernier message: 15/10/2006, 18h05

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