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

API, COM et SDKs Delphi Discussion :

XMLDocument SaveTofile et format


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut XMLDocument SaveTofile et format
    Bonjour à tous,

    je suis sous XE2, j'ai un objet TXmlDocument qui contient ce fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Personnage>
     <Equipement>
    ...
      </Equipement>
    </Personnage>
    J'ajoute un node à la racine avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RacinePerso := XMLPersonnage.DocumentElement;
    RacinePerso.AddChild('DonneesCalculee');
    XMLPersonnage.SaveToXML();
    Et j'obtiens le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    </Armes>
      </Equipement>
      <DonneesCalculee/></Personnage>
    Genre il manque un retour charriot entre <DonneesCalculee/> et </Personnage>

    Je fais comment pour avoir ce truc ? Avant j'utilisais une ancienne librairie "NativeXml" qui offrait une propriété "XfReadable" afin de pallier ça? Des idées ?

    Merci.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    ça ne fonctionne pas en utilisant NodeIndentStr et et l'option doNodeAutoIndent ??

  3. #3
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    ben déjà ces deux trucs ont pas l'air de faire partie soit de XMLDocument ni de IXmlNode...
    J'ai bien trouve un "FormatXMLData" mais je trouve pas comment l'utiliser...

  4. #4
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    oops j'avais pas bien lu. Ca doit être la fatigue... Je cherchais dans les propriétés et pas dans les constantes.

    Bon je progresse :
    La fin de mon fichier de départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		</Armes>
    	</Equipement>    
    </Personnage>
    Le code Delphi :
    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
    Procedure TOPersonnage.CalculerPErsonnage;
    Var nodecalcul : IXmlNode;
    Begin
      XMLPersonnage.Options :=  [doNodeAutoIndent];
      XMLPersonnage.NodeIndentStr := '    ';
      nodecalcul := RacinePerso.AddChild('DonneesCalculee');
      with nodecalcul do
        begin
          with AddChild('Test1') do
            begin
              addchild('autre1');
              AddChild('Autre2');
              Attributes['attr'] := 'attribut';
            end;
          AddChild('Test2');
        end;
    End;
    Et le résultat final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	</Equipement>    <DonneesCalculee>
            <Test1 attr="attribut">
                <autre1/>
                <Autre2/>
            </Test1>
            <Test2/>
        </DonneesCalculee>
    </Personnage>
    Il reste encore un hiatus au niveau du premier <DonneesCalculee>. PAr contre le </DonneesCalculee> lui est bien indenté...
    JE vais essayer de setter Options avant la lecture du fichier on sait jamais...

  5. #5
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Bon j'ai essayé de mettre le setting des options entre la création du XMLDocument et le loadfromfile, mais rien n'y fait : le premier node créé est toujours mal indenté...

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    XMLPersonnage est le IXMLDocument je suppose ?
    Tu crées un fichier xml de toutes pièces ou tu modifies un existant ?
    Si tu le crée, il faut définir des options au moment de la création, avant le active := True;

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/01/2015, 13h49
  2. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34
  3. Format d'un exe pour DOS et pour Windows
    Par Alfhiger dans le forum Assembleur
    Réponses: 4
    Dernier message: 12/06/2002, 11h57
  4. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

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