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 :

Ajout saut de ligne entre les attributs d'un élément


Sujet :

XSL/XSLT/XPATH XML

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Ajout saut de ligne entre les attributs d'un élément
    Bonjour,

    Besoin d'aide pour ajouter un saut de ligne entre les attributs d'un élément.
    Pour le moment, ils sont sur la même ligne, les uns à la suite des autres...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:for-each select="/fmp:FMPXMLRESULT/fmp:RESULTSET/fmp:ROW">
    	<xsl:element name="MyElement">
    		<xsl:attribute name="NAME"><xsl:value-of select="fmp:COL[6]" /></xsl:attribute>
    		<xsl:attribute name="DATE"><xsl:value-of select="fmp:COL[7]"/></xsl:attribute>
    	</xsl:element>
    </xsl:for-each>

    Merci !

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    comme le whitespace entre attributs "ne compte pas" (il est ignoré par le parseur XML), il n'existe pas de réglage XSLT standardisé pour le régler.

    A voir si le moteur XSLT que toi tu choisis d'utiliser, propose des directives non-standard pour régler ça, mais il n'y a pas de standard.

    Personnellement, franchement, quand j'ai envie de faire ça, je repasse ma propre moulinette derrière qui lit le XML produit avec un parseur normal, et le réécrit avec un formateur que j'ai fait moi-même.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci de ta réponse.

    Je suis sur la plateforme FileMaker qui utilise xalan.
    J'ai cherché partout des directives pour forcer ce paramétrage mais je n'ai rien trouvé.
    C'est dommage quand même de rajouter un traitement sur le fichier produit, c'est pas l'idéal.
    Mais bon si je n'ai pas le choix, il va bien falloir s'y atteler...

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Tu aurais un exemple du retraitement que tu opères par hasard ?

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    St'un peu long à montrer.

    C'est une classe Java qui prend un Document XML parsé en JDOM2, ainsi qu'une valeur d'indentation et une liste de noms de balises pour lesquelles les attributs doivent apparaître chacun sur une ligne.

    A partir de là, elle parcourt le Document récursivement, en retenant le niveau d'indentation auquel mettre les nouvelles balises/les attributs. Et elle s'occupe d'échapper les caractères qui ont besoin d'un échappement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    On peut le faire en restant dans l'eco-system classique via SAX2.

    D'abord, on doit se familiariser comme faire une extension du défaut ContentHandler de produire une exacte copie du document donné (comme une transformation identique en xslt).

    Avec ça prêt, on modifie le handler de l'évenement startElement() dans lequel on traite normalement des attributs. Au lieu de écrivant simplement pour sortir un espace vide puis le nom et "=" et sa valeur en parenthèses ... on écrit par insertion un line-break et puis certaine nombre de espace vide (ou \t) pour l'effet d'indentation.

    La détermination de ce dernier est plus délicate: il peut être déterminé par le stokage des caractères capturés juste avant le handler de l'évenement startElement() par ce que le handler de l'évenement characters(). Les espaces vides significatifs sont ceux après le dernier line-break et finalement ajoutant la grandeur d'indentation supplémentaire désiré ...

    Voilà la procédure par étape.

Discussions similaires

  1. Balises <h5> <h6> qui font un saut de ligne entre les deux texte
    Par asp2p dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 29/05/2017, 14h57
  2. [KSH] ajouter des saut de lignes tous les 200 caractères dans un fichier
    Par twixi dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 09/10/2012, 15h58
  3. comment faire un saut de ligne entre les balise
    Par 123quatre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 02/10/2010, 16h21
  4. [RegEx] Garder seulement les sauts de ligne entre deux balises
    Par Adjoint dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2009, 20h56
  5. [Eclipse 3][Format Source] Sauts de ligne entre attributs
    Par sylvain_2020 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 25/08/2004, 16h04

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