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 :

XSL test si l'élément a l'attribut


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Octobre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 6
    Par défaut XSL test si l'élément a l'attribut
    Bonjour, j'ai un jeu de fichiers xml contenant des éléments topic et 1 seul fichier qui contien un topic avec un attribut produit="OPTION".

    Je voudrais écrire OPTION dans le header du fichier contenant l'attribut produit="OPTION" et TOTO sur les autres headers.

    Actuellement le résultat du test suivant écrit OPTIOn sur tous mes headers et pas uniquement sur celui qui a l'attribut comme si il faisait un test au moins un élément contient. Une idée SVP? Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <xsl:choose>
            <xsl:when test="topic/@produit='OPTION'">
                     <fo:inline xsl:use-attribute-sets="title__option">
                                <xsl:text>OPTION</xsl:text>
                   </fo:inline>
              </xsl:when>
              <xsl:otherwise>
                     TOTO
               </xsl:otherwise>
    </xsl:choose>

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Hello,

    le problème est dans le code que tu as choisi de ne pas montrer. Comme toujours.

    C'est pour ça qu'il faut toujours montrer tout le code, en fait. On peut raisonnablement se demander qu'est-ce qui peut faire croire à quelqu'un que c'est une bonne idée de cacher des choses quand on demande de l'aide.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Octobre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 6
    Par défaut
    Hello arf ok utilisant dita opentoolkit il y a beacoup de code que j'ai choisit de ne pas montrer pour aller à l'essentiel mais en gros ça donne

    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
     
    <xsl:template name="insertBodyEvenHeader">
        <xsl:param as="xs:string" name="flow-name" select="'even-body-header'" />
        <fo:static-content flow-name="{$flow-name}">
          <fo:block xsl:use-attribute-sets="__body__even__header">
    		Chapitre <fo:retrieve-marker retrieve-class-name="current-header" />
    		<xsl:text>*</xsl:text>
    		<xsl:choose>
                           <xsl:when test="topic/@produit='OPTION'">
                                <fo:inline xsl:use-attribute-sets="title__option">
                                     <xsl:text>OPTION</xsl:text>
                               </fo:inline>
                           </xsl:when>
                           <xsl:otherwise>
                                 TOTO
                          </xsl:otherwise>
                       </xsl:choose>
     
     
          </fo:block> 
        </fo:static-content>
      </xsl:template>
    Merci

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Non mais il y a pas de "en gros".

    J'ai dit tout le code. Et je ne devrais même pas avoir besoin de le dire.

    Et s'il y a beaucoup de code, eh bien, enlèves-en. On est pas en train d'écrire ton programme, on est en train de voir comment résoudre ton problème. Le reste de ton programme est donc sans intérêt.
    Alors tu fais un autre programme, extrêmement court. Et qui a le problème que tu essaies de résoudre. Et normalement rien d'autre que ça.

    Ensuite, tu nous montres le programme en question, le XML d'entrée, le résultat, et le résultat que tu aurais voulu avoir à la place.

    Euh... C'est de l'informatique. Tu es face à un problème que tu as tellement de mal à résoudre que tu es train de demander de l'aide. Tout ce que je dis au-dessus, tu étais censé le faire pendant que tu essayais de résoudre ton problème.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Octobre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Octobre 2018
    Messages : 6
    Par défaut
    Effectivement 1 l'accueil est chaleureux 2 si je demande c'est que je ne suis pas expert 3 dita opentoolkit c'est des dizaines de feuilles xsl imbriquées


    Après remastering

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <xsl:template name="insertBodyStaticContents">
            <xsl:call-template name="insertBodyFootnoteSeparator"/>
            <xsl:call-template name="insertBodyOddFooter"/>
            <xsl:if test="$mirror-page-margins">
              <xsl:call-template name="insertBodyEvenFooter"/>
     
            </xsl:if>
     
    		<xsl:choose>
    			<xsl:when test="*[contains(@product,'OPTION')]">
    				<xsl:call-template name="OddHeaderOPTION"/>
    			</xsl:when>
    			<xsl:otherwise>
    				<xsl:call-template name="insertBodyOddHeader"/>
    			</xsl:otherwise>
    		</xsl:choose>
     
            <xsl:if test="$mirror-page-margins">
              <xsl:call-template name="insertBodyEvenHeader"/>
            </xsl:if>
            <xsl:call-template name="insertBodyFirstHeader"/>
            <xsl:call-template name="insertBodyFirstFooter"/>
            <xsl:call-template name="insertBodyLastHeader"/>
            <xsl:call-template name="insertBodyLastFooter"/>
        </xsl:template>
     
     
     
     
     
     
     
    <xsl:template name="insertBodyOddHeader">
        <xsl:param as="xs:string" name="flow-name" select="'odd-body-header'" />
        <fo:static-content flow-name="{$flow-name}">
          <fo:block xsl:use-attribute-sets="__body__odd__header">
    			Chapitre <fo:retrieve-marker retrieve-class-name="current-header" />
    			<xsl:text>*</xsl:text>			
          </fo:block>
     
        </fo:static-content>
      </xsl:template>
     
     
      <xsl:template name="OddHeaderOPTION">
        <xsl:param as="xs:string" name="flow-name" select="'odd-body-header'" />
        <fo:static-content flow-name="{$flow-name}">
    		<fo:block xsl:use-attribute-sets="__body__odd__header">
    			Chapitre <fo:retrieve-marker retrieve-class-name="current-header" />
    			<xsl:text>*</xsl:text>
    			<fo:inline xsl:use-attribute-sets="title__option">
    				<xsl:text>OPTION</xsl:text>
    			</fo:inline>
    		</fo:block>
        </fo:static-content>	
      </xsl:template>

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    1. C'est bien mignon de se plaindre de l'accueil, mais en même temps quand les gens te disent qu'il faut montrer tout le code et que tu montres autre chose que tout le code, il faut te faire à l'idée qu'ils vont se rendre compte que tu fais autre chose que ce que les gens qui essaient de t'aider te disent de faire.

    Et en général, ça ne plaît pas beaucoup. Parce que si on te dit de faire un truc, c'est parce qu'on est au courant qu'il le faut. Tu n'es pas vraiment censé le remettre en question.

    A la limite tu demanderais comment faire au lieu de décider qu'on se contentera des miettes que tu ajoutes, bon, on va dire qu'on peut toujours faire une leçon d'informatique de base.

    2. Expert ou pas, si tu essaies de travailler avec XSLT, tu es au minimum un peu à l'aise avec les ordinateurs, donc tu sais comment on étudie un problème et tu sais que les gens ne peuvent pas lire dans tes pensées. Pourtant dans tes messages, tout porte à croire le contraire.

    3. Je t'ai déjà dit ce qu'il faut faire quand il y a beaucoup de code. "Dita opentoolkit" ou pas "dita opentoolkit", ça ne change rien. La méthode reste la même.

    4. Du coup, c'est quoi le code remastérisé, là ? Ça fait ce que tu voulais que ça fasse ? Ça ne devrait pourtant rien changer, à vue de nez, mais bon, le reste du code peut y être pour quelque chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Ce qu'il faut montrer, à mon sens, est aussi le(s) template(s) où document(...) sont invoqués. Avec ça, je peux vous donner des idées comment faire.

Discussions similaires

  1. [XSL] test égalité entre nodes
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 10/10/2005, 17h40
  2. [XSD] test de la valeur d'un attribut
    Par ka0z dans le forum Valider
    Réponses: 3
    Dernier message: 21/08/2005, 20h46
  3. xsl : test sur les chaine de caractère
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/07/2005, 15h43
  4. xsl:test .... avec comportement bizarre
    Par Blue LC dans le forum XMLRAD
    Réponses: 2
    Dernier message: 10/06/2005, 13h56
  5. Réponses: 5
    Dernier message: 24/04/2003, 11h47

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