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] Pb de generation sh avec XSLT [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 180
    Points : 91
    Points
    91
    Par défaut [XSLT] Pb de generation sh avec XSLT
    Bonjour,
    Je cherche à créer un shell (fichier plat) avec une feuille de transformation et un fichier XML.
    Mon pb est que à chaque changement de noeud, le fichier en sortie indente
    je ne sais pas comment faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <rule>
       <origine>Toto</origine>
       <port>80</port>
    </rule>
    après transformation : (utilisation de xsl:apply-template)

    !!
    Merci

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Bonjour,

    regarde du côté de l'élément ouput et de son attribut indent : http://www.w3.org/TR/xslt#output

  3. #3
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    regarde surtout du côté de l option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:strip-space elements="*"/>
    elle te permettra de ne pas afficher les espaces non significatifs d'éléments ce qui est le cas ici...

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Ceux sont deux choses totalement différentes et qui n'a pas lieu de s'appliquer ici : il n'y a pas d'espace en trop dans ses balises...

  5. #5
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    cela dépend du template match utilisé...
    s il a écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="rule">
      <xsl:value-of select="."/>
    </xsl:template>
    il va avoir des problèmes...

    et effectivement se sont deux choses différentes et l option indent n'y changera rien...

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par luta
    cela dépend du template match utilisé...
    Non cela depend
    1)de s'il n' ya que des espaces devant port

    Citation Envoyé par w3c
    Une fois l'arbre pour le document source ou la feuille de styles construit, mais avant tout autre traitement XSLT, certains noeuds textuels sont supprimés. Un noeud textuel est supprimé quand il ne contient que des caractères d'espaces blancs. Supprimer le noeud textuel revient à l'enlever de l'arbre. Le processus de suppression prend en entrée un ensemble de noms d'éléments pour lesquels les caractères d'espaces blancs doivent être préservés. Le processus de suppression est appliqué aussi bien aux feuilles de styles qu'aux documents source, cependant, les ensembles des noms d'éléments pour lesquels les caractères d'espaces blancs doivent être préservés sont déterminés différemment pour les feuilles de style et les documents source.
    2) du processeur utilisé.Ainsi msxml entre autres ignore les noeuds texte ne contenant que espace et retour à la ligne

    C'est ceci qui jouera que ce soit au niveau du parsage ou de la concaténation

    Le mieux serait de voir le code XSLT car sans balises je ne vois pas trop en effet le rapport avec l'indent

  7. #7
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    bizarre car dans une feuille xslt par exemple j écris ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="Response[not(//Message)]">
      <xsl:text>ANSWER:S:"</xsl:text>
        <xsl:value-of select="$CST_Success"/><xsl:text>"
      </xsl:text>
      <xsl:text>STATUS:S:"</xsl:text>
        <xsl:value-of select="$CST_OK"/>
      <xsl:text>"</xsl:text>
    </xsl:template>
    ...et bien j ai aussi des espaces or ils sont scencés être supprimés d après ce que je lis

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    non car ils sont entre balise xsl:text qui préserve son contenu notamment au niveau des espaces...

  9. #9
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut

    Je vois pas le rapport
    Tu ne montres pas ce que tu parses mais ce que tu ecris dans ton xsl.

    Quels sont tes espaces "preservés"
    pour complement


    Citation Envoyé par w3C
    Un noeud textuel est préservé si l'une des conditions suivantes est vérifiée :

    le nom de l'élément parent du noeud textuel fait partie de l'ensemble contenant les noms des éléments dont on veut préserver les caractères d'espaces blancs.

    Le noeud textuel contient au moins un caractère différent d'un espace blanc. Comme pour XML, les espaces blancs sont les caractères dont les codes hexadécimaux sont #x20, #x9, #xD ou #xA.

    Le premier des ancêtres du noeud textuel à avoir l'attribut xml:space renseigné en fixe la valeur à preserve (en d'autres termes : il n'existe aucun élément entre cet ancêtre et le noeud textuel qui modifierait la valeur de cet attribut pour la remettre à default).

    Autrement le noeud texte est supprimé.

Discussions similaires

  1. Problème avec xslt
    Par khaly dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/06/2005, 13h36
  2. [XSLT][XSD>XML]transformer xsd en xml avec xslt
    Par émile-henri dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 14/06/2005, 15h06
  3. [XSLT]petit(s) pb(s) avec les xmlns et <xsl:namespace-ali
    Par Swoög dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/01/2005, 17h04
  4. Insertion de noNamespaceSchemaLocation avec XSLT
    Par sapjo dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/10/2004, 16h48
  5. traitement des caractères spéciaux avec XSLT
    Par Mirgue dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 19/07/2004, 16h57

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