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

XSL/XSLT/XPATH XML Discussion :

[XSLT] ordre des attributs xml inversés


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut [XSLT] ordre des attributs xml inversés
    Bonjour
    j'ai ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output encoding="iso-8859-1" method="xml" indent="yes"/>
     
    <xsl:template match="/">
     
    <personnes>
      <personne nom="Martin" prenom="Pierre" />
    </personnes>
     
    </xsl:template>
     
    </xsl:stylesheet>
    Voici le résultat que j'obtiens
    comme vous pouvez le voir les attributs (nom et prenom) sont inversés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <personnes>
    <personne prenom="Pierre" nom="Martin"/>
    </personnes>
    je voudrais qu'ils restent dans le bon sens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <personne nom="Martin" prenom="Pierre" />
    existe il une option pour éviter ceci car ce n'est pas pratique nos fichiers xml ont des dizaines d'attributs et des centaines de lignes et tout est inversés.

    merci d'avance pour vos idées

    Manu.

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    non, ce que tu demandes n'est pas réalisable, car la spécification XML du W3C précise bien que l'ordre d'apparition des attributs après analyse ou sérialisation est indéterminé, et dépend de l'implémentation.

    En l'occurrence, cela ne peut éventuellement « perturber » qu'un lecteur humain, cela n'a absolument aucune répercussion sur le traitement du document XML par des outils standards (une application qui dépendrait de l'ordre d'apparition des attributs ne respecterait d'ailleurs pas la spécification XML).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse

    Oui effectivement nous ouvrons et lisons les fichiers régulièrement c'est important que nous ayons les champs dans l'ordre.
    Par ailleurs je te confirme que nous avons bien aussi une application qui ne respecte pas la règle XML et qui utilise les positions des attributs plutôt que les noms.

    Dans la transformation l'ordre est en fait toujours inversé cela part du dernier au premier, Heureusement que cet ordre est toujours inversé car derrière on peut malgré tout continuer a faire fonctionner l'application.

    Ca serait quand même pas mal si il y avait une option pour garder l'ordre des attributs. <output keep-order-attributes="yes" />

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par manuaparis Voir le message
    Ca serait quand même pas mal si il y avait une option pour garder l'ordre des attributs. <output keep-order-attributes="yes" />
    Ca n'existe pas, parce qu'en principe ça n'est pas nécessaire.

    Les attributs sont en quelque sorte les "metadonnées" d'un élément, et leur ordre d'apparition dans un document XML sérialisé ne doit, selon la spécification XML, véhiculer aucune sémantique particulière. Si vraiment c'est nécessaire pour ton application, il va falloir passer par un traitement à base d'expressions régulières pour modifier cela...

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Citation Envoyé par manuaparis Voir le message
    Oui effectivement nous ouvrons et lisons les fichiers régulièrement c'est important que nous ayons les champs dans l'ordre.
    Par ailleurs je te confirme que nous avons bien aussi une application qui ne respecte pas la règle XML et qui utilise les positions des attributs plutôt que les noms.
    À mon avis une telle chose ne marche que par hasard. Un jour vous ferez une mise à jour sur quelque chose, quoi que ce soit, et les attributs ne seront plus lus dans le même ordre.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par thelvin Voir le message
    À mon avis une telle chose ne marche que par hasard. Un jour vous ferez une mise à jour sur quelque chose, quoi que ce soit, et les attributs ne seront plus lus dans le même ordre.
    C'est très très embêtant, notre système repose sur le fait que les attributs sont inversés. nous n'avons pour l'instant pas eu de cas d'erreur.
    Après recherche a travers le web il est impossible de garantir l'ordre mais au dire des utilisateurs il semble être toujours inversé dans le cas XALAN, mais XALAN ne garanti pas l'ordre malgré tout.

    Si vraiment c'est nécessaire pour ton application, il va falloir passer par un traitement à base d'expressions régulières pour modifier cela...
    je connais bien les expressions régulières mais sur le coup la je ne vois pas.
    As tu une petite idée qui pourrait me guider sur la forme d'une expression régulière dans le xslt pour mettre en ordre les attributs?
    Toutefois je soupçonne que cela va charger le xslt...

  7. #7
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par manuaparis Voir le message
    je connais bien les expressions régulières mais sur le coup la je ne vois pas. As tu une petite idée qui pourrait me guider sur la forme d'une expression régulière dans le xslt pour mettre en ordre les attributs?
    Toutefois je soupçonne que cela va charger le xslt...
    Je n'avais pas dans l'idée d'utiliser les expressions régulières avec XSLT (version 2.0 obligatoire, ou encore 1.0 avec extension). Je pensais plus à un pré ou un post-traitement par un outil développé avec un autre langage.

Discussions similaires

  1. Ordre des attributs d'un document XML
    Par Snooker9 dans le forum Qt
    Réponses: 1
    Dernier message: 08/02/2011, 18h02
  2. Réponses: 0
    Dernier message: 05/12/2008, 15h29
  3. [xslt][xpath]Utilisation des attributs XML
    Par Little_flower dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 15/05/2007, 12h42
  4. [XSLT]Modifier l'ordre des balises XML
    Par Philos15 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 18/10/2006, 09h54
  5. [XSLT] Dédoublonner des attributs
    Par 242 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 10/11/2005, 15h44

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