Article View: fr.comp.text.xml
Article #10679Re: Questions de gros debutant sur xls
From: Eric Jacoboni
Date: Sat, 26 Aug 2000 00:00
Date: Sat, 26 Aug 2000 00:00
85 lines
4056 bytes
4056 bytes
>>>>> "Thierry" == Thierry Bezecourt <thbz@thbz.cx> writes:
Thierry> G�n�rer une table des mati�res ne me para�t pas si facile que cela
Thierry> avec expat.
Je voulais dire avec XML::Parser... En fait, l'avantage que j'y vois
est que je peux concilier le traitement de XML par XML::Parser et le
traitement du fichier brut par Perl (deux choses que je ma�trise bien
maintenant). Je ne dis pas que c'est plus lisible, encore que :
sub section {
$section +=1;
print "<a name = \"sect_$section\"><h2>$section. ". $_[3]."</h2></a>";
}
sub toc {
my $sect = 1;
print "<hr>\n";
print "<center><h2><em>Table des matières</em></h2></center><p>\n";
print "<ul>";
open (FIC, $fichier) or die "$!\n";
while (<FIC>) {
print "<li><a href=\"\#sect_".$sect++."\">$1</a></li>\n"
if (/<section titre.*=.*\"(.*?)\"/);
}
print "</ul>";
close FIC;
}
ne soit pas le bout du monde...
Thierry> Avec XSLT, c'est beaucoup plus propre
Je ne le nie pas. Mais j'ai l'impression que cette propret� � un prix...
Thierry> <xsl:template name="toc">
Thierry> <!-- s�lectionner chaque chapitre et afficher son titre -->
Thierry> </xsl:template>
Elle est bien bonne ;-)
Pour qu'une toc HTML soit efficace � mon sens, elle doit ressembler de
pr�s ou de loin � une liste contenant des liens <a href=...> vers
chaque t�te de section (je passe sur les d�coupages inf�rieurs). Or
pour que ces liens soient faits il faut que les t�tes de section
placent une r�f�rence <a name=...> (voir le code Perl ci-dessus). Vu
que la toc appara�t _avant_ la premi�re section, j'ai du mal �
imaginer comment g�rer ce truc en XSLT (c'est s�rement possible, mais
bon...).
C'est s�r qu'en utilisant un .xls d�j� �crit par un organisme
comp�tent, j'y arriverais... Toutes proportions gard�es, c'est ce que
je fais avec Docbook en utilisant un html.dsl perso qui se borne �
dire (define %generate-article-toc% #t) et, c'est le cas de le dire :
toc ! Mais cela va � l'encontre de mon principe directeur consistant �
utiliser le moins possible d'outils.
Cela dit, le probl�me ne se pose qu'avec HTML qui ne dispose pas de
m�canisme int�gr� pour les toc. En LaTeX (pardon pour cette
comparaison audacieuse),
sub toc {
print "\\tableofcontents";
}
et roulez jeunesse...
Il en irait de m�me pour toute transformation vers une DTD d�finissant le
m�me m�canisme...
Thierry>Je n'aime pas la syntaxe de XSLT (<xsl:value-of select="@title" />,
Thierry> c'est lourd...), mais la logique qui est derri�re (templates + XPath)
Thierry> est vraiment s�duisante.
Ce n'est pas tant la syntaxe qui me g�ne que la volont� d�lib�r�e (et
s�rement louable pour ceux � qui c'est destin�) de cacher toute la
logique de traitement et, quand on a l'habitude de programmer � � sec �,
c'est pour le moins d�concertant...
--
---------------------------------------------------------
�ric Jacoboni � No sport, cigars! � (W. Churchill)
---------------------------------------------------------
Technical Details
Message-ID:
<87itsot249.fsf@titine.fr.eu.org>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<87d7ixgl96.fsf@titine.fr.eu.org> <UdCp5.1477$bh4.3744927@nnrp2.proxad.net> <87n1i1eygo.fsf@titine.fr.eu.org> <m166oo97c3.fsf@worldnet.fr>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,a08f9144e078d452 X-Google-Attributes: gid114f60,public From: Eric Jacoboni <jaco@titine.fr.eu.org> Subject: Re: Questions de gros debutant sur xls Date: 2000/08/26 Message-ID: <87itsot249.fsf@titine.fr.eu.org> X-Deja-AN: 662759259 Content-Transfer-Encoding: 8bit References: <87d7ixgl96.fsf@titine.fr.eu.org> <UdCp5.1477$bh4.3744927@nnrp2.proxad.net> <87n1i1eygo.fsf@titine.fr.eu.org> <m166oo97c3.fsf@worldnet.fr> Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: abuse@proxad.net X-Trace: nnrp1.proxad.net 967307570 213.228.5.89 (Sat, 26 Aug 2000 18:32:50 MEST) Organization: JacoSoft Intl. X-Attribution: Jaco Mime-Version: 1.0 User-Agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7 NNTP-Posting-Date: Sat, 26 Aug 2000 18:32:50 MEST Newsgroups: fr.comp.text.xml