From: Laurent CAPRANI (caprani@multimania.com)
Date: 02/10/2001 - 14:25
Bonjour Olivier,
Je vous propose la méthode generate-id() qui permet d'identifier les noeuds
de façon unique et dont vous pouvez sans doute vous inspirer.
Note: On doit pouvoir faire quelque chose de similaire (et de plus efficace)
avec des keys.
-- Source --
<doc>
<titre>Premier titre</titre>
<para>Un paragraphe</para>
<para>Un paragraphe</para>
...
<titre>Deuxième titre</titre>
<para>Un paragraphe</para>
<para>Un paragraphe</para>
...
</doc>
-- Feuille --
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="doc">
<html>
<table border='1'>
<xsl:apply-templates select="titre"/>
</table>
</html>
</xsl:template>
<xsl:template match="titre">
<tr>
<td>
<h1><xsl:apply-templates/></h1>
</td>
<td>
<xsl:apply-templates
select="following-sibling::*[name()!='titre'][preceding-sibling::titre[1][ge
nerate-id()=generate-id(current())]]"/>
</td>
</tr>
</xsl:template>
<xsl:template match="para"><p><xsl:apply-templates/></p></xsl:template>
</xsl:stylesheet>
-- Résultat --
Un tableau HTML avec les titres à gauche et les paragraphes à droite.
-- Laurent CAPRANI
Montréal
> -----Original Message-----
> From: xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]On
> Behalf Of Roux, Olivier (FIDI)
> Sent: Tuesday, October 02, 2001 9:22 AM
> To: xml-tech@xmlfr.org
> Subject: [xml-tech] comment "localiser" un élément de manière unique?
>
>
> Voici mon problème :
> Je traite des documents XML assez complexes, du style :
> <DOC>
> <HEADER>1. Titre 1</HEADER>
> <AA>atretret<BB>jhdgfjdhgjfdg</BB></AA>
> <XX><YY TYPE="1"/>jhfjdf<BB>hjjdkhgdkjf</BB></XX>
> <HEADER>2. Titre 2</HEADER>
> <AA>fhhjgh<BB>4654654</BB></AA>
> <XX><YY TYPE="1"/>jhfjdf</XX>
> <HEADER>3. Titre 3</HEADER>
> <AA>atretret<BB><CC>jhdgdg</CC></BB></AA>
> <XX><YY TYPE="2"/>jhfjdf</XX>
> </DOC>
>
> J'ai une première feuille de style qui utilise le contenu de ce
> document pour
> afficher les éléments, par exemple AA.
> J'ai une deuxième feuille de style qui se contente d'afficher
> l'ensemble du
> document en le formattant comme un "document normal",
> c'est-à-dire que chaque
> HEADER apparait comme un titre et que tous les autres éléments sont
> simplement appliqués.
> J'ai besion de présenter la page HTML résultante comme une table
> des matières
> ne montrant que les HEADER :
> 1. Titre 1
> 2. Titre 2
> 3. Titre 3
> etc.
> l'idée serait que chaque titre soit un lien qui mène à l'affichage du
> document, mais SEULEMENT la partie comprise entre le HEADER choisi et le
> suivant... par exemple, si l'utilisateur clique sur "2. Titre 2", la page
> suivante montre :
> 2. Titre 2
> fhhjgh : 4654654
> XX : type 1 - jhfjdf)
> je n'arrive pas à trouver un moyen de dire : appliqer les
> templates dont le
> "numéro" (ou position absolue...) est compris entre celui de
> HEADER 1.Titre 1
> et HEADER 2. Titre 2
>
> Al 'aide! ;-)
>
>
> ------------------------------------------------------------------
> -----------
> ---------------------------
> Olivier ROUX < °),,,,..((
>
> Fishery Information Officer FIGIS Project
> FAO/FIDI - room F320
> viale delle Terme di Caracalla - 00100 Roma - ITALIA
--
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
|