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

 Delphi Discussion :

indentation d'un XML


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 18
    Points : 9
    Points
    9
    Par défaut indentation d'un XML
    Bonjour,
    je n'ai pas trouvé sur le forum ni dans la faq.

    est-il possible de faire une indentation XML.

    Par exemple dans un Memo.

    Transformer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A><B>toto</B><C>titi</C></A>
    en ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <A>
       <B>toto</B>
       <C>titi</C>
    </A>
    Merci d’avance
    JOCE

  2. #2
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    uses XMLDoc,
     
    mmo1.Lines.Text := XMLDoc.FormatXMLData(mmo1.Lines.Text);

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci pour la reponse.
    Ca marche pour présque tout.

    Mais j'ai aussi des XML sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <A>ssss<B>toto</B><C>titi</C></A>
    ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <A>ssss  <B>toto</B>
      <C>titi</C>
    </A>
    Donc je sais pas si il y a une solution a mon cas.
    JOCE

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 679
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 679
    Points : 13 082
    Points
    13 082
    Par défaut
    Cette écriture n'est pas valide. Un noeud Text ne peut pas contenir de sous-éléments.

  5. #5
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Cette écriture est valide au niveau XML. Par contre au niveau structuration, ce n'est pas l'idéal pour retrouver des données.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    il n' y a donc pas de solution ?
    JOCE

  7. #7
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 152
    Points
    10 152
    Par défaut
    Bah il y a ça
    https://github.com/sjrd/sepi/blob/ma...ScXML.pas#L260
    mais je ne sais pas si ça se comporte mieux avec ton cas de figure.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 844
    Points
    24 844
    Par défaut
    tu es sur que ce n'est pas plutôt

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <A ssss=xxx>
      <B>toto</B>
      <C>titi</C>
    </A>

    Internet Explorer 6 et FireFox supporte tous les deux ton XML et obtienne la bonne mise en forme !
    Il est étrange que IXMLDocument n'arrive pas au même résultat que IE !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 679
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 679
    Points : 13 082
    Points
    13 082
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Cette écriture est valide au niveau XML.
    C'est vrai
    Je n'avais jamais poussé plus loin que la lecture en .Text...

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    tu es sur que ce n'est pas plutôt

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <A ssss=xxx>
      <B>toto</B>
      <C>titi</C>
    </A>

    Internet Explorer 6 et FireFox supporte tous les deux ton XML et obtienne la bonne mise en forme !
    Il est étrange que IXMLDocument n'arrive pas au même résultat que IE !
    Oui oui je suis bien sur de mon écriture.
    et je ne comprend pas pourquoi IXMLDocument n'y arrive pas.



    @sjrd je vais tester ce que tu m'as indiqué
    JOCE

  11. #11
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Personnellement, cela ne me dérange pas plus que ça...

    Si j'ai par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body><p>Quel beau <a title="Hint">lien</a></p></body>
    J'aime autant avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <body>
      <p>Quel beau <a title="Hint">lien</a></p>
    </body>
    que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body>
      <p>Quel beau
        <a title="Hint">lien</a>
      </p>
    </body>
    Cela dit, vu ton l'exemple, on dirait qu'il manque juste un retour à la ligne car l'indentation semble présente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <A>ssss  <B>toto</B>
      <C>titi</C>
    </A>

  12. #12
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 679
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 679
    Points : 13 082
    Points
    13 082
    Par défaut
    FormatXMLData ne tient manifestement pas compte du noeud précédent pour indenter. (Celui qui a fait cette routine ne semblait pas plus au courant que moi )
    Par contre que <B> se retrouve sur la même ligne que le texte est logique. Sinon le texte serait transformé en ssss#13#10.

Discussions similaires

  1. Indentation du fichier XML généré par windev
    Par kariel dans le forum WinDev
    Réponses: 22
    Dernier message: 17/12/2014, 13h14
  2. [FAQ]Comment indenter un fichier XML
    Par SfJ5Rpw8 dans le forum Vos Contributions VBScript
    Réponses: 4
    Dernier message: 23/10/2008, 11h04
  3. Comment indenter un flux XML avant affichage ?
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/12/2006, 11h30
  4. Réponses: 3
    Dernier message: 17/07/2006, 08h29

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