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] Comment attribuer une valeur � un attribut?


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par d�faut [XSLT] Comment attribuer une valeur � un attribut?
    Bonjour � tous,
    je voudrais attribuer des valeurs � quelques unes de mes attributs d'images. En fait quand je re�ois les fichiers xml, les images sont ins�r�es mais les attributs non rensign�es. Je voudrais que mes cadres ancr�s prennent les proportions de mes images et pour �a je dois attribuer 0pt � ces 2 attributs: voffset et hoffset . Comment dois-je faire avec le code suivant:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <xsl:template match="*">
                <xsl:element name="{name()}">
    	<xsl:for-each select="@*">
    	<xsl:attribute name="{name(.)}">
                  <xsl:choose>
                              <xsl:when test="name(.)='colwidth'">
                                    <xsl:value-of select="translate(.,'cm','*')"/>
                                 </xsl:when>
                                 <xsl:when test="name(.)='Quantite'">
                                    <xsl:value-of select="translate(.,',','£')"/>
                                 </xsl:when>
                                  <xsl:when test="name(.)='voffset'">
                                  ???????????
                                 </xsl:when>
                                 <xsl:when test="name(.)='hoffset'">
                                    ??????????
                                 </xsl:when>
                                 <xsl:otherwise>
                                      <xsl:value-of select="."/>
                                 </xsl:otherwise>
                  </xsl:choose>
                  </xsl:attribute>
             </xsl:for-each>
             <xsl:apply-templates/>
         </xsl:element>
    </xsl:template>
    NB: l� o� y a les ???

    Merci d'avance

  2. #2
    Membre �m�rite
    Inscrit en
    Octobre 2005
    Messages
    847
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par d�faut
    en faisant un truc comme �a?:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <xsl:template match="*">
                <xsl:element name="{name()}">
    	<xsl:for-each select="@*">
    	<xsl:attribute name="{name(.)}">
                  <xsl:choose>
                              <xsl:when test="name(.)='colwidth'">
                                    <xsl:value-of select="translate(.,'cm','*')"/>
                                 </xsl:when>
                                 <xsl:when test="name(.)='Quantite'">
                                    <xsl:value-of select="translate(.,',','£')"/>
                                 </xsl:when>
                                  <xsl:when test="name(.)='voffset'">
                                 <xsl:value-of select="'0pt'"/>
                                 </xsl:when>
                                 <xsl:when test="name(.)='hoffset'">
                                <xsl:value-of select="'0pt'"/>
                                 </xsl:when>
                                 <xsl:otherwise>
                                      <xsl:value-of select="."/>
                                 </xsl:otherwise>
                  </xsl:choose>
                  </xsl:attribute>
             </xsl:for-each>
             <xsl:apply-templates/>
         </xsl:element>
    </xsl:template>

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par d�faut
    Bonjour Valal,
    en fait j'ai test� ton code mais �a ne m'a pas cr�er les contenus d'attribut.et pourtant j'ai envie d'en ajouter. En plus d'attribuer 0pt � mes attributs voffset et hoffset, je voudrai
    -que quand un contenu d'attribut est NA de supprimer tout l'attribut,
    -de mettre mon Sommaire qui a le code d'appel actuel
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    <xsl:if test="..=/ ">
    <xsl:call-template name="Sommaire"/>
    </xsl:if>
    non pas en d�but du fichier mais apr�s mon �l�ment qui s'appelle <Page_perso> (ma page de couverture) Comment faire? En plus c'est hyper URGENT!!! Rappel du 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <xsl:template match="*">
     <xsl:element name="{name()}">
    <xsl:for-each select="@*">
    <xsl:attribute name="{name(.)}">
        <xsl:choose>
        <xsl:when test="name(.)='colwidth'">
          <xsl:value-of select="translate(.,'cm','*')"/>
              </xsl:when>
                <xsl:when test="name(.)='Quantite'">
               <xsl:value-of select="translate(.,',','£')"/>
              </xsl:when>
                 <xsl:when test="name(.)='Quantite_ISO'">
               <xsl:value-of select="translate(.,',','£')"/>
                </xsl:when>
                 <xsl:when test="name(.)='Quantite_US'">
               <xsl:value-of select="translate(.,',','£')"/>
                 </xsl:when>
                 <xsl:when test="name(.)='voffset'">
                   <xsl:value-of select="'0pt'"/>
                    </xsl:when>
                  <xsl:when test="name(.)='hoffset'">
                   <xsl:value-of select="'0pt'"/>
                    </xsl:when>
                 <xsl:otherwise>
                   <xsl:value-of select="."/>
            </xsl:otherwise>
                  </xsl:choose>
                  </xsl:attribute>
             </xsl:for-each>
     <xsl:if test="..=/ ">
    <xsl:call-template name="Sommaire"/>
    </xsl:if>
        <xsl:apply-templates/>
         </xsl:element>
    </xsl:template>

  4. #4
    Membre �m�rite
    Inscrit en
    Octobre 2005
    Messages
    847
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par d�faut
    si c'est urgent essaye alors d'expliquer un peu plus stp.

    �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    -que quand un contenu d'attribut est NA de supprimer tout l'attribut, 
    -de mettre mon Sommaire qui a le code d'appel actuel
    quel attribut? code appel?actuel?

    et �a aussi :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    non pas en début du fichier mais après mon élément qui s'appelle <Page_perso> (ma page de couverture) Comment faire
    Page_perso?quel fichier?page de couverture?

    est ce que les '0pt' s'inserent ou pas?

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par d�faut
    oh c bon t'inerve pas je m'explique alors:
    cas1:
    dans mes fichiers xml, j'ai des unit�s avec des attributs du type
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <dimension>
    <metre Quantite_ISO="2,44" Quantite_US_Foot="NA" Quantite_US_inch="NA"/>
    </dimension>
    , si l'attribut n'a pas de contenu, le r�dacteur du fichier xml renseigne la valeur NA comme valeur de l'attribut, comme le montre l'exemple. Ce que je veux c'est quand le contenu est NA vir� tout l'attribut^pour obtenir �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <dimension>
    <metre Quantite_ISO="2,44"/>
    </dimension>
    Cas2:
    Celui qui a fait le xslt sur lequel je travaille, a fait un sommaire sur xslt et pour l'appeler dans le xml de sortie, il a d�clarer ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    <!-- Crée le sommaire si ce noeud est celui de plus haut niveau -->
    <xsl:if test="..=/ ">
    <xsl:call-template name="Sommaire"/>
    </xsl:if>
    alors moi je ne veux pas que le sommaire s'affiche sur le noeud le plus haut mais juste apr�s une balise qui s'appelle
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <Page_perso>...</Page_perso>
    qui contient des informations que je dois r�cup�rer avant le sommaire.En gros le fichier actuel apr�s transformation donne ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Assemblage>
    <TDMPAGE>...</TDMPAGE>
    <Page_perso>...</Page_perso>
    <Chapitre>...</Chapitre>
    <Section>...</Section>
    Etc...
    </Assemblage>
    <
    Cas3:
    les 0pt ne se sont pas appliqu�s et je ne sais pas pourquoi
    Suis-je clair cette fois ci? Mes fichiers xml sont �normes c prquoi j'en mets pas

Discussions similaires

  1. R�ponses: 5
    Dernier message: 16/11/2013, 17h53
  2. R�ponses: 3
    Dernier message: 21/09/2010, 08h19
  3. R�ponses: 6
    Dernier message: 13/09/2010, 15h31
  4. R�ponses: 15
    Dernier message: 05/01/2008, 19h47
  5. R�ponses: 6
    Dernier message: 13/06/2007, 14h38

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