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-FO] Tableau et ancre


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut [XSL-FO] Tableau et ancre
    Bonjour,

    j'aurais besoin de votre aide puisque je suis bloqué depuis plusieurs semaines déjà. En fait, j'ai deux soucis que je n'arrive pas à résoudre :

    1) J'ai une table des matières et j'aimerais faire une sorte d'"ancre" de telle sorte que lorsque je clique sur un sous-chapitre par exemple, celui-ci me mène directement à la page où se trouve le sous-chapitre.

    2) Sur chaque page, j'ai un tableau. Cependant, celui-ci peut s'étendre sur plusieurs pages selon son contenu. Aussi, j'aimerais pouvoir qu'à chaque fois que le tableau se coupe et enchaine sur la page suivante, celui-ci se referme et que sur la nouvelle page, on retrouve la colonne.

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour toMuch,

    1) Tu utilise XSL-FO pour effectuer une transformation de la forme XML vers un langage : on a besoin de connaitre ce langage HTML, XHTML, PDF ?

    2) Tout d'abord, il te faut calculer le nombre de ligne contenant dans une page.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Bonjour et merci pour la réponse.

    Je travail avec la technologie FOP pour générer un PDF (c'est vrai que cela peut aider).

    1) En fait, comme par magie, j'ai réussi à résoudre le premier problème quant aux ancres.

    2) Cela va me servir à quoi de compter le nombre de lignes ? Et comment je peux faire cela ? J'ai cherché mais je ne trouve pas...

    Edit : On peut imbriquer un tableau dans un autre ?

  4. #4
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour toMuch,

    dans le cas où un tableau tiens sur une page, il n'y a pas de soucis.
    Sinon "le tableau peut s'étendre sur plusieurs pages selon son contenu"
    alors par défaut, FOP ne ferme pas le tableau en fin de page -- la ligne du bas n'existe pas --, il trace une telle ligne uniquement à la fin du tableau, ce qui peut être un problème pour la présentation. Les exemples qui accompagne FOP le montre bien. Jusque là, le seul moyen que j'ai trouvé pour tracer cette fameuse ligne m'impose de compte le nombre de ligne de mon tableau.

    Pour compter, on utilise souvent la récurence puisqu'en XSL il n'y a pas de variable au sens commun du terme comme en C ou en Java. En fait, les variables sont des constantes.

    Autrement, de mémoire, il me semble que dans les exemples il y a des tableaux insérés dans d'autres tableaux. Dans le pire des cas, il suffit de faire un petit test pour t'en assurer.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Merci polymorphisme !

    Je vais essayer ça pour voir si j'y arrive car cette notion de récurrence, je ne connais pas en XSL...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Re-bonjour !

    En effet, les tableaux imbriqués fonctionnent.

    Sinon, pour la récursion, j'ai essayé de chercher comment on devait le faire mais si quelqu'un pouvait me donner un petit exemple... Et de plus, comment tracer le trait ?

    Désolé de demander cela mais je viens tout juste de commencer à apprendre le XSL et je peine un peu.

    Merci par avance.

  7. #7
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    A propos de variable, voiçi un exemple extrait d'un tutoriel du site :
    (http://haypo.developpez.com/tutoriel...mation/#LIII.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
    <xsl:template name="boucle">
      <xsl:param name="debut" select="0" />
      <xsl:param name="fin" select="0" />
     
      <xsl:text>i = </xsl:text>
      <xsl:value-of select="$debut" />
      <br/>
     
      <xsl:if test="$debut < $fin">
        <xsl:call-template name="boucle">
          <xsl:with-param name="debut" select="($debut)+1" />
          <xsl:with-param name="fin" select="$fin" />
        </xsl:call-template>
      </xsl:if>
    </xsl:template>
    En XSL-FO, l'élement fo:leader permet de tracer un trait.

    A bientôt

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    J'ai voulu testé pour voir ce que cela pouvais faire mais j'ai une erreur qui se lève quand j'essaie de mettre cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="$debut < $fin">
    En effet, il me souligne le signe "<" se trouvant entre les deux variables debut et fin puisqu'il la confond avec une balise ouvrante. C'est pourquoi dans l'erreur, il me demande de la fermer.

    N'y a-t-il pas un autre moyen de faire cette comparaison ?

    En tout cas, merci polymorphisme d'avoir pris le temps de me répondre pour mes questions précédentes

  9. #9
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Oui, en effet, j'ai fais un simple copier/coller du code source,
    mais il faut bien entendu remplacer le caractère < par &lt;
    puisque XLST est du XML.

    N'y a-t-il pas un autre moyen de faire cette comparaison ?
    A ma connaissance, non !

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Hello,
    Tu peux utiliser :
    Comme "Less Than".

  11. #11
    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
    Personnellement je préfère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="$fin > $debut">
    Ça inverse un peu la pensée, mais ça reste plus lisible à mon goût que &lt;

    Edit : du moins est-ce le cas quand la coloration syntaxique gère correctement le > dans un attribut -_-°.

  12. #12
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Ok, ok, mais notons alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="$fin &gt; $debut">

  13. #13
    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
    Pourquoi faire ? "plus grand que" est parfaitement autorisé sans échappement en XML, d'où l'intérêt de faire ça au lieu de "plus petit que."

    J'admets qu'il faut faire attention aux parseurs XML exotiques qui se figurent que c'est pas autorisé. Mais le risque me semble faible avec les transformateurs XSLT, vu qu'ils utilisent plutôt des parseurs connus.

  14. #14
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    il y a des jours, où je m'emmèle les pinceaux .

    On peut effectivement écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="$fin > $debut">
    A la question :

    N'y a-t-il pas un autre moyen de faire cette comparaison ?
    J'ai répondu "non", car les opérateurs "plus grand que" et "plus petit que" sont équivalents modulo une symétrie.

    Finalement, pour revenir sur l'erreur :

    J'ai voulu testé pour voir ce que cela pouvais faire mais j'ai une erreur
    toMuch : l'erreur est ailleur.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Merci !

    Je vais essayer de voir ça plus en détail et revient vers vous si je bloque ou si d'ailleurs j'ai réussi pour vous dire ce qu'il en était !

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    j'ai réussi à faire ce que je voulais grâce à vous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] XSL vers tableau HTML
    Par Sam 069 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/04/2007, 11h22
  2. Réponses: 9
    Dernier message: 09/02/2007, 11h19
  3. [XSL~FO] tableau à colonnes variables
    Par matts21 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 18/09/2006, 15h47
  4. [XSL~FO]tableau de taille dynamique
    Par sozie9372 dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 13/07/2006, 17h57
  5. [XSl-FO] tableau tronqué
    Par damyrid dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/03/2006, 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