Article View: fr.comp.text.xml
Article #8336Re: xslt
From: Alain Ketterlin
Date: Wed, 21 Nov 2001 07:58
Date: Wed, 21 Nov 2001 07:58
72 lines
3281 bytes
3281 bytes
Philippe Batailler <pbatailler@teaser.fr> writes:
> Alain Ketterlin <alain@dpt-info.u-strasbg.fr> �crit :
> > Non. La DTD du document _resultat_ est independante de la DTD du
> > document initial.
>
> Je veux dire : il faut le rajouter dans le document-r�sultat.
<varlistentry> est declaree dans la DTD DocBook. Tu peux utiliser
<xsl:output ... doctype-public="..."> (ou doctype-system) pour que la
reference a la DTD soit presente dans le resultat.
> > Si par contre tu ecris le fichier sur disque, et que tu le reparses
> > ensuite, peut-etre que les caracteres < et > seront presents et que le
> > parser va comprendre que c'est un element.
>
> Oui c'est ce que j'ai fait jusqu'� pr�sent; et j'analyse le
> document-r�sultat avec nsgmls : pas d'erreur.
Attention : nsgmls c'est pour SGML. Que dit un parseur XML ? (Il
devrait etre content aussi, ce n'est pas important.)
> Voici pourquoi je fais comme �a : si je mets
>
> <xsl:otherwise>
> <varlistentry>
> <term>
> <xsl:apply-templates/>
> </term>
> </xsl:otherwise>
> ...
Ouch. Cela veut dire que ton <varlistentry> est ferme en-dehors du
<xsl:choose>, donc que chaque <xsl:when> doit aussi introduire une
balise <varlistentry>. Donc tu peux mettre ce <varlistentry> avant le
<xsl:choose> au lieu de le recopier dans chaque branche. A moins que
tu aies le meme <xsl:choose un peu plus loin pour fermer ta
<varlistentry>...
En general, la transfo XSLT est plutot dirigee par la structure en
sortie. Si tu es dans cette situation, il faut inverser l'ordre des
tests pour te ramener a un cas dans lequel tu peux imbriquer
correctement les balises. Par exemple, au lieu de :
<xsl:if test="...[test1]...">
<balise>
</xsl:if>
...[plein de choses]...
<xsl:if test="...[test1]...">
</balise>
</xsl:if>
(qui est incorrect>, tu peux ecrire :
<xsl:choose>
<xsl:when test="...[test1]...">
<balise>
...[plein de choses]...
</balise>
</xsl:when>
<xsl:otherwise>
...[plein de choses]...
</xsl:otherwise>
</xsl:choose>
Si vraiment la partie commune est trop longue, tu la mets dans un
template.
-- Alain.
Technical Details
Message-ID:
<wyk7wk7dyn.fsf@polya.u-strasbg.fr>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!ciril.fr!news.u-strasbg.fr!not-for-mailReferences:
<87lmh2g5wn.fsf@clalis.pclnet> <wyu1vq3kmq.fsf@polya.u-strasbg.fr> <87n11hn7p7.fsf@clalis.pclnet> <wysnb97t88.fsf@polya.u-strasbg.fr> <87r8qt2nnw.fsf@clalis.pclnet> <wypu6c7gjk.fsf@polya.u-strasbg.fr> <87u1vo7c6r.fsf@clalis.pclnet>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,6f15fa792995f48a X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-11-21 00:47:01 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!ciril.fr!news.u-strasbg.fr!not-for-mail From: Alain Ketterlin <alain@dpt-info.u-strasbg.fr> Newsgroups: fr.comp.text.xml Subject: Re: xslt Date: 21 Nov 2001 08:58:08 +0100 Organization: CRC - Universite Louis Pasteur Strasbourg France Lines: 72 Message-ID: <wyk7wk7dyn.fsf@polya.u-strasbg.fr> References: <87lmh2g5wn.fsf@clalis.pclnet> <wyu1vq3kmq.fsf@polya.u-strasbg.fr> <87n11hn7p7.fsf@clalis.pclnet> <wysnb97t88.fsf@polya.u-strasbg.fr> <87r8qt2nnw.fsf@clalis.pclnet> <wypu6c7gjk.fsf@polya.u-strasbg.fr> <87u1vo7c6r.fsf@clalis.pclnet> NNTP-Posting-Host: polya.u-strasbg.fr X-Trace: news.u-strasbg.fr 1006337282 24460 130.79.44.199 (21 Nov 2001 10:08:02 GMT) X-Complaints-To: usenet@u-strasbg.fr NNTP-Posting-Date: 21 Nov 2001 10:08:02 GMT X-Newsreader: Gnus v5.6.45/XEmacs 21.1 - "Capitol Reef"