🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #8336

Re: xslt

#8336
From: Alain Ketterlin
Date: Wed, 21 Nov 2001 07:58
72 lines
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-mail
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>

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"