From: xavier iseler (xiseler@manreo.com)
Date: 10/06/2003 - 08:13
Ce ne serait pas plus simple d'avoir une sortie differente toutes les
10 ou 20 occurrences ?
ou une une petite page par image
avec
<xsl:variable name="htmFile"
select="concat(configObj:elementIdValue(),'.htm')"/>
<redirect:write file="{$htmFile}">contenu de la page</redirect>
et en gerant l'affichage dans des frames pour n'en avoir qu'un nombre
limite par page en changeant la source des iframes en javascript ou
autre.
Sinon, en testant le dernier caractere avec 1 il serait possible de
generer des pages contenant 10 images..
ISELER Xavier
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org] De la
part de Super Abricot
Envoyé : mardi 10 juin 2003 09:40
À : xml-tech@xmlfr.org
Objet : [xml-tech] Insirer un filtre dans une 'stylesheet' d'affichage
multi-colonnes ?
Bonjour,
Pour mon papa numismate, j'ai un fichier XML dont la structure ressemble
à ceci (c'était mon cadeau pour la Fête des Pères ;-) :
<!-- Parameters: DTD, XSL, Header... -->
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE series SYSTEM "coins.dtd">
<?xml-stylesheet href="coins.xsl" type="text/xsl"?>
<!-- Series Index -->
<coins>
<coin>
<serial>C0001</serial>
<name>Piece 1</name>
<thumb><thumb path="../Thumbs/c0001.jpg"/></thumb>
</coin>
<coin>
<serial>C0002</serial>
<name>Piece 2</name>
<thumb><thumb path="../Thumbs/c0002.jpg"/></thumb>
</coin>
<coin>
<serial>C0003</serial>
<name>Piece 3</name>
<thumb><thumb path="../Thumbs/c0003.jpg"/></thumb>
</coin>
<coin>
<serial>C0004</serial>
<name>Piece 4</name>
<thumb><thumb path="../Thumbs/c0004.jpg"/></thumb>
</coin>
</coins>
Et ainsi de suite (2.489 occurences à ce jour).
Je parviens, sans aucun problème, à afficher le contenu de cette DB
dans un tableau de 4 colonnes grâce à la 'stylesheet' suivante :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="ISO-8859-1"
indent="yes"/>
<xsl:template match="/">
<html>
<HEAD>
<LINK REL="stylesheet" TYPE="text/css" HREF="stylesheet.css"/>
</HEAD>
<body>
<center>
<img src="../objets/papaphoto.jpg" border="0" width="480" height="96"
alt="Le numismate à l'oeuvre">
</img>
<h2>Index des Pièces de Monnaie</h2>
</center>
<br/><br/>
<table align="center" valign="top" width="100%">
<xsl:apply-templates select="coins/coin" mode="premiers"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="coin[(position() mod 4) = 1]" mode="premiers">
<tr>
<xsl:apply-templates select="."/>
<xsl:choose>
<xsl:when test="following-sibling::coin[1]">
<xsl:apply-templates select="following-sibling::coin[1]"/>
<xsl:apply-templates select="following-sibling::coin[2]"/>
<xsl:apply-templates select="following-sibling::coin[3]"/>
</xsl:when>
<xsl:otherwise>
<td> </td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
<xsl:template match="coin" mode="premiers"/>
<xsl:template match="coin">
<td align="center" valign="top" width="25%">
<xsl:for-each select="thumb">
<img>
<xsl:attribute name="src">
<xsl:value-of select="thumb/@path"/>
</xsl:attribute>
</img>
</xsl:for-each>
<br/>
<p>
Code : <xsl:value-of select="serial"/>
<br/>
Nom : <xsl:value-of select="name"/>
</p>
</td>
</xsl:template>
</xsl:stylesheet>
Tout ceci fonctionne très bien...
... Mais j'obtiens une page très lourde et très lente à charger
puisqu'elle doit afficher près de 2.500 enregistrements d'un coup.
Je voudrais pouvoir choisir un 'range' de valeurs à afficher (ex.: du
serial C0100 au serial C0250) et/ou pouvoir ne choisir qu'un seul
enregistrement à la fois.
Je suppose (???) que je dois/devrais utiliser soit
<xsl:for-each select="coins/coin[serial>&'C0099' and
serial<&'C0251']">
</xsl:for-each>
ou
<xsl:for-each select="coins/coin[serial='C0333']">
</xsl:for-each>
Mais cela ne fonctionne pas: Je ne parviens pas à savoir où, dans ma
'stylesheet', je dois inscrire ce filtre et je ne sais pas si la syntaxe
est correcte.
Il s'gait sans doute d'une bétise, mais je n'en sors pas.
Pouvez-vous m'aider ?
Je vous en remercie.
Super Abricot
---------------------------------
Do you Yahoo!?
Free online calendar with sync to Outlook(TM).
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|