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] mise en page


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Points : 78
    Points
    78
    Par défaut [XSLT] mise en page
    bonjour,
    mon projet xml/xsl est une cdtheque, j'ai creer un document xml et une feuille xsl, j'ai coder les auteurs dans un tableau avec une petite routine en javascript pour le tri par ordre aphabétique.
    donc voici le code :

    document XML >> piece jointe tri.xml
    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
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <?xml:stylesheet type="text/xsl" href="tri.xsl"?>
    <cdtheque>
          <cdaudio>
                <auteur>jill scott</auteur>
                <titre>all rights</titre>
                <annee_parution>2002</annee_parution>
                <editeur>rose</editeur>
                <categorie>rnb</categorie>
                <code_barre>01</code_barre>
          </cdaudio>
          <cdaudio>
                <auteur>gorges michael</auteur>
                <titre>the girls</titre>
                <annee_parution>1990</annee_parution>
                <editeur>danny and bred</editeur>
                <categorie>funk</categorie>
                <code_barre>02</code_barre>
          </cdaudio>
          <cdaudio>
                <auteur>groudation</auteur>
                <titre>money</titre>
                <annee_parution>2006</annee_parution>
                <editeur>paddy</editeur>
                <categorie>ragga</categorie>
                <code_barre>03</code_barre>
          </cdaudio>
    </cdtheque>
    feuille de style xsl >> piece jointe tri.xsl
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    ?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
    <html>
     <head>
     <title>Listing VO</title>
     <script language="JScript"><![CDATA[
     
     // Déclaration des variables
     var XSLSource = new Object();          
     var XMLSource = new Object();
     
     // Chargement des documents XML et XSL
     XMLSource = document.XMLDocument;
     XSLSource = document.XSLDocument;
     
     function tri (rubrique) {
     
      // Déclaration des variables
     var XSLSort = new  Object();            
     
     // Sélection de l'ordre xsl:sort
     XSLSort =
       XSLSource.documentElement.selectNodes("//xsl:sort");
     
      // Affectation de la rubrique de tri
     if (XSLSort[0].attributes(0).text == rubrique.toString()){
       if ( XSLSort[0].attributes(1).text == "ascending") {
         XSLSort[0].attributes(1).text = "descending";
       } else {
         XSLSort[0].attributes(1).text = "ascending";
       }
     } else {
       XSLSort[0].attributes(1).text = "ascending";
     }
     XSLSort[0].attributes(0).text = rubrique.toString();
     // affichage de l'ordre de tri
     XSLem = XSLSource.documentElement.selectNodes("//p/em");
     XSLem [0].text = rubrique.toString();
     XSLem [1].text = XSLSort[0].attributes(1).text ;
     // Réaffichage de la page
     document.body.innerHTML =
       XMLSource.transformNode(XSLSource);
    }]]></script>
     </head>
     <body>
       <p>Tri sur <em>auteur</em> par ordre <em>descending</em>.</p>
       <p>Cliquez sur un titre pour changer l'ordre de tri.</p>
     
          <table border="1" cellspacing="0" cellpadding="3">
     <tr bgcolor="#FFFF00">
     
           <th id="HeaderColumnauteur"
             onclick="javascript:tri('auteur');">auteur</th>
           <th id="HeaderColumntitre"
             onclick="javascript:tri('titre');">titre</th>
           <th id="HeaderColumnannee_parution"
             onclick="javascript:tri('annee_parution');">annee_parution</th>
           <th id="HeaderColumnediteur"
             onclick="javascript:tri('editeur');"
             >editeur</th>
           <th id="HeaderColumncategorie"
             onclick="javascript:tri('categorie');"
             >categorie</th>
           <th id="HeaderColumncode_barre"
             onclick="javascript:tri('code_barre');"
             >code_barre</th>
         </tr>
         <xsl:apply-templates select="cdtheque/cdaudio">
           <xsl:sort select="auteur" order="descending"/>
         </xsl:apply-templates>
       </table>
     </body>
    </html>
    </xsl:template>
    <xsl:template match="cdaudio">
     <tr>
       <td>
         <xsl:value-of select="auteur"/>
       </td>
       <td>
         <xsl:value-of select="titre"/>
       </td>
       <td>
         <xsl:value-of select="annee_parution"/>
       </td>
       <td>
         <xsl:value-of select="editeur"/>
       </td>
       <td>
         <xsl:value-of select="categorie"/>
       </td>
          <td>
         <xsl:value-of select="code_barre"/>
       </td>
     </tr>
    </xsl:template>
    </xsl:stylesheet>
    je voudrais pouvoir ajouter a mon projet un menu a gauche de mon tableau pour pouvoir selectionner plusieur pages xml, j'ai chercher sur internet des lien sur la mise en forme xsl qui apparamment est plus puissante que le CSS mais je me suit "perdu" dans le nombre fonctions xsl rencontrées.
    comme les aire , les aires de lignes, fo:root, fo:page-sequence,
    et surtous , region-body, region-before, region-start.....


    voici ce que j'attens de mon projet :
    [IMG[/IMG]

    si quelqu'un a une idee je suis preneur.

    CDLT
    Philo
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Attention... il ne faut pas confondre XSL-T et XSL-FO !

    XSL-FO ne s'applique pas aux navigateurs. En fait, il permet de définir le remplissage de pages, avec entêtes et pieds de page, table des matières, index,... et il est essentiellement utilisé pour générer des PDF grâce, notamment, au produit gratuit FOP...

    XSL-T peut être utilisé pour générer du HTML et du code Javascript dynamiquement.
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    sinon concernant ton problème le plus simple est de générer des frames html à mon avis, ou bien gérer des ancres

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

Discussions similaires

  1. [RSS] [XSLT]Mise en en page flux RSS avec CSS
    Par d.w.d dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 06/11/2007, 04h45
  2. [CR.NET][VS.NET] mise en page et sections
    Par guignol dans le forum SDK
    Réponses: 8
    Dernier message: 06/08/2004, 15h07
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. [CR] Mise en page
    Par akolyto dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/10/2003, 12h22
  5. [mise en page] pour bien indenter son code
    Par bihorece dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/08/2003, 16h14

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