From: nmonney@bluewin.ch
Date: 30/01/2003 - 13:22
Bonjour,
J'ai un problème avec un passage de paramètre. Un template ("extract-text")
est chargé de récupérer du texte, et l'expression xpath concernant ce texte
est passé en paramètre (xsl:with-param) à l'appel du template (xsl:call-template),
comme on peut le constater en regardant le template "DebatOralDebut", ci-après.
Mais un xsl:comment placé dans le template qui extrait le texte montre bien
que ce qui se trouve dans xsl:param n'est jamais exécuté.
Quelqu'un peut-il m'indiquer l'erreur ?
Merci d'avance pour l'aide.
PS: A la suite de la feuille XSL se trouve le doc XML utilisé
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Nom du fichier : transfoEtape3.xsl -->
<!--Transformation étape 3 : extraction des éléments -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- Par défaut on ignore tous les éléments -->
<xsl:template match="*"/>
<!-- Certains éléments sont copiés tels quels -->
<xsl:template match="Normal|_-Texte|NoProjet|TypeProjet|NoObjet|MotCle|NoSeance|DateSeance|MomentSeance">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<!-- Traitement de la racine du document -->
<xsl:template match="/">
<document>
<xsl:apply-templates select="(//NoSeance)[1]"/>
<xsl:apply-templates select="//DateSeance"/>
<xsl:apply-templates select="(//MomentSeance)[1]"/>
<xsl:apply-templates select="//PresidenceSeanceDebut"/>
<xsl:apply-templates select="//PresidenceSeanceFin"/>
<xsl:apply-templates select="//ListePresence"/>
<xsl:apply-templates select="//ListeAbsence"/>
<xsl:apply-templates select="//PointSeanceDebut"/>
</document>
</xsl:template>
<!-- Traitement de la présidence de séance-->
<xsl:template match="PresidenceSeanceDebut">
<!-- element-id du prochain "fin" -->
<xsl:variable name="finId" select="following-sibling::PresidenceSeanceFin[1]/@element-id"/>
<PresidenceSeance>
<!-- Extraction du texte -->
<xsl:value-of select="../text()"/>
<xsl:apply-templates select="following-sibling::*[@element-id < $finId]"/>
<xsl:value-of select="../text()[position()=last()]"/>
</PresidenceSeance>
</xsl:template>
<!-- Traitement des points de projet -->
<xsl:template match="PointProjetDebut">
<!-- element-id du prochain "fin" -->
<xsl:variable name="finId" select="following::PointProjetFin[1]/@element-id"/>
<!-- TODO: générer une erreur si fin pas trouvé -->
<!-- Traitement de tous les éléments jusqu'à "fin" -->
<PointProjet>
<!-- Appel du template extract-text -->
<xsl:call-template name="extract-text">
<xsl:with-param name="elem" select=".."/>
</xsl:call-template>
<xsl:apply-templates select="following::*[@element-id < $finId]"/>
</PointProjet>
</xsl:template>
<!-- Traitement des débats oraux -->
<xsl:template match="DebatOralDebut">
<!-- element-id du prochain "fin" -->
<xsl:variable name="finId" select="following::DebatOralFin[1]/@element-id"/>
<!-- TODO: générer une erreur si fin pas trouvé -->
<!-- Affectation de l'Id de l'orateur à la variable speaker -->
<xsl:variable name="speaker" select="following::NoId[1]/text()"/>
<!-- Création de l'attribut speaker_Id, auquel on affecte la valeur de
la variable speaker -->
<DebatOral speaker_Id="{$speaker}">
<!-- Appel du template extract-text -->
<xsl:call-template name="extract-text">
<xsl:with-param name="elem" select="../text()"/>
</xsl:call-template>
<!--<xsl:value-of select="../text()"/>-->
<xsl:comment>Debat oral</xsl:comment>
<!-- Extraction de tous les éléments du DebatOral -->
<xsl:apply-templates select="following::*[@element-id < $finId]"/>
</DebatOral>
</xsl:template>
<!-- Traitement des points de séance -->
<xsl:template match="PointSeanceDebut">
<!-- element-id du prochain "fin" -->
<xsl:variable name="finId" select="following::PointSeanceFin[1]/@element-id"/>
<!-- TODO: erreur si fin pas trouvé -->
<PointSeance upto="{$finId}">
<!-- Extraction séléctive du contenu, chaque élément étant traité par
son propre template -->
<xsl:apply-templates select="following::PointProjetDebut[@element-id <
$finId]"/>
<xsl:apply-templates select="following::DebatOralDebut[@element-id <
$finId]"/>
</PointSeance>
</xsl:template>
<!-- Extraction de texte, selon un paramètre. Template se déclanchant sur
appel de son nom. -->
<xsl:template name="extract-text">
<xsl:param name="elem">
<xsl:comment>Template extract-text -2- </xsl:comment>
<_-Texte>
<xsl:value-of select="$elem"/>
</_-Texte>
</xsl:param>
</xsl:template>
<!-- Traitement de la liste de présence -->
<xsl:template match="ListePresence">
<ListePresence>
<!-- Extraction du texte précédedant la liste de noms -->
<xsl:value-of select="../text()[position()=1]"/>
<xsl:apply-templates/>
<!-- Extraction du texte suivant la liste de noms -->
<xsl:value-of select="../text()[position()=last()]"/>
</ListePresence>
</xsl:template>
<!-- Traitement de la liste de liste d'absence -->
<xsl:template match="ListeAbsence">
<ListeAbsence>
<!-- Extraction du texte précédedant la liste de noms -->
<xsl:value-of select="../text()[position()=1]"/>
<xsl:apply-templates/>
<!-- Extraction du texte suivant la liste de noms -->
<xsl:value-of select="../text()[position()=last()]"/>
</ListeAbsence>
</xsl:template>
</xsl:stylesheet>
---Doc XML---
<?xml version="1.0" encoding="UTF-8"?>
<document element-id="000000">
<documentinfo element-id="000001">
<property element-id="000002" name="title" value=" "/>
<property element-id="000003" name="author" value="Françoise CHETELAT"/>
</documentinfo>
<part element-id="000004">
<table element-id="000005">
<row element-id="000006">
<cell element-id="000007">
<Normal element-id="000008">N<superscript element-id="000009">o </superscript>
<NoSeance element-id="000010">21</NoSeance>/III</Normal>
</cell>
</row>
<row element-id="000011">
<cell element-id="000012" colspan="3">
<Normal element-id="000013">Vendredi <DateSeance element-id="000014">24
mai 1996</DateSeance>,</Normal>
<Normal element-id="000015">
<MomentSeance element-id="000016">nuit</MomentSeance>
</Normal>
<Président element-id="000017">Présidence :</Président>
<Président element-id="000018">
<PresidenceSeanceDebut element-id="000019"/>
<NoId element-id="000020">28</NoId>M. Jean-Luc Ducret,<newline element-id="000021"/>président<PresidenceSeanceFin
element-id="000022"/>
</Président>
</cell>
</row>
</table>
<_-Texte element-id="000023">La séance est ouverte à 21 h.</_-Texte>
<_-Texte element-id="000024">Assistent à la séance : MM. <ListePresence
element-id="000025">
<NoId element-id="000026">138</NoId>Jean-Philippe Maitre, <NoId element-id="000027">141</NoId>Claude Haegi,
<NoId element-id="000028">139</NoId>Olivier Vodoz, <NoId element-id="000029">47</NoId>Philippe Joye,
<NoId element-id="000030">69</NoId>Gérard Ramseyer et Mme <NoId element-id="000031">15</NoId>Martine Brunschwig
Graf</ListePresence>, conseillers d'Etat.</_-Texte>
<section element-id="000032" level="1">
<heading element-id="000033" level="1" name="heading-1">1. Exhortation.</heading>
<_-Texte element-id="000034">Le président donne lecture de l'exhortation.</_-Texte>
</section>
</part>
<part element-id="000035">
<section element-id="000036" level="1">
<heading element-id="000037" level="1" name="heading-1">2. Personnes excusées.</heading>
<_-Texte element-id="000038">Le président. Ont fait excuser leur absence
à cette séance : M. <ListeAbsence element-id="000039">
<NoId element-id="000040">140</NoId>Guy-Olivier Segond, président du
Conseil d'Etat, ainsi que Mmes et MM. <NoId element-id="000041">1374</NoId>Luc Barthassat,
<NoId element-id="000042">9</NoId>Roger Beer, <NoId element-id="000043">1377</NoId>Fabienne Blanc-Kühn,
<NoId element-id="000044">1378</NoId>Thomas Büchi, <NoId element-id="000045">1462</NoId>Anita Cuénod,
<NoId element-id="000046">25</NoId>Hervé Dessimoz, <NoId element-id="000047">34</NoId>Catherine Fatio,
<NoId element-id="000048">36</NoId>Bénédict Fontanet, <NoId element-id="000049">297</NoId>Michel Halpérin,
<NoId element-id="000050">66</NoId>Jean Opériol, <NoId element-id="000051">74</NoId>Jean-Pierre Rigotti,
<NoId element-id="000052">87</NoId>Jean Spielmann et <NoId element-id="000053">5710</NoId>Yves Zehfus</ListeAbsence>,
députés.</_-Texte>
</section>
</part>
<part element-id="000054">
<section element-id="000055" level="1">
<heading element-id="000056" level="1" name="heading-1">
<PointSeanceDebut element-id="000057"/>4. <PointProjetDebut element-id="000058"/>
<NoProjet element-id="000059">7726</NoProjet>Proposition de motion de
Mmes et MM. Mireille Gossauer-Zurcher, Liliane Charrière Urben, Jacques Boesch,
Janine Hagmann, Bernard Lescaze, Pierre Marti et Gabrielle Maulini-Dreyfus
sur la situation des ressortissants de Bosnie-Herzégovine au bénéfice du
permis F collectif. (<TypeProjet element-id="000060">M</TypeProjet> <NoObjet
element-id="000061">1063</NoObjet>)<MotCle element-id="000062">Ressortissants
de Bosnie-Herzégovine</MotCle>
<PointProjetFin element-id="000063"/>
</heading>
<Normal element-id="000064">EXPOSÉ DES MOTIFS</Normal>
<_-Texte element-id="000065">Suite à un arrêté fédéral, les ressortissants
de Bosnie-Herzégovine ont obtenu un permis F collectif leur permettant de
séjourner en Suisse alors que leur pays était en guerre (admission provisoire).
</_-Texte>
<_-Texte element-id="000066">
<DebatOralDebut element-id="000067"/>
<NoId element-id="000068">1416</NoId>Mme Mireille Gossauer-Zurcher (S).
Je souhaite, tout d'abord, rectifier le premier considérant de cette motion.
s est fixé au 31 août 1996.</_-Texte>
<_-Texte element-id="000069">Cette motion propose une solution à la situation
particulière des détenteurs de permis F. En effet, ces derniers, suite à
la décision du Conseil fédéral de les renvoyer dans leur pays, souhaitent
rester en Suisse et y déposer une demande d'asile. Il est juste et normal
qu'ils continuent à vivre dans le canton qui les a accueillis et auquel ils
sont intégrés.</_-Texte>
<_-Texte element-id="000070">Je vous remercie de soutenir cette motion
au nom des personnes qui ont choisi de déposer une demande d'asile, afin
qu'elles bénéficient, chez nous, d'un accueil digne de ce nom. Aussi je vous
demande de la renvoyer au Conseil d'Etat. <DebatOralFin element-id="000071"/>
</_-Texte>
<_-Texte element-id="000072">
<DebatOralDebut element-id="000073"/>
<NoId element-id="000074">69</NoId>M. Gérard Ramseyer, conseiller d'Etat.
Je vous donne tout d'abord lecture du communiqué de presse, intitulé «Voyage
au pays facilité pour les Bosniaques chassés par la guerre», dont Etats contractants
autoriseront les ressortissants bosniaques à transiter sans visa sur leur
territoire national.»</_-Texte>
<_-Texte element-id="000075">»Ainsi, les conditions sont réunies pour
que les Bosniaques, chassés par la guerre, puissent, autant que possible,
traverserdevaient rester bloqués dans l'un des pays de transit, l'Etat de
provenance aurait l'obligation de les réadmettre. Il importe, à divers titres,
que les Bosniaques chassés par la guerre puissent se rendre facilement dans
leur pays.»</_-Texte>
<_-Texte element-id="000076">»Les Etats d'accueil européens entendent
encourager leur retour volontaire. Le 3 avril 1996, le Conseil fédéral a,
en outre, décidé de permettre aux personnes concernées d'entreprendre des
voyages d'information en Bosnie. juillet 1996.» </_-Texte>
<_-Texte element-id="000077">Ceci étant, nous nous n'avons pas d'objection
à ce que ce dossier retourne en commission. <DebatOralFin element-id="000078"/>
</_-Texte>
<_-Texte element-id="000079">Mise aux voix, cette motion est adoptée.</_-Texte>
<_-Texte element-id="000080">Elle est ainsi conçue :<StatutProjet element-id="000081">
<NoProjetStatut element-id="000082">7726</NoProjetStatut>Adoptée</StatutProjet>
</_-Texte>
<Normal element-id="000083">(M 1063)</Normal>
<Normal element-id="000084">considérant :</Normal>
<Normal element-id="000085">invite le Conseil d'Etat</Normal>
<_-Texte element-id="000086">à faire tout ce qui est en son pouvoir auprès
de l?Office fédéral des réfugiés pour que l?enregistrement de la demande
au CERA se fasse la journée et de garantir aux ressortissants de Bosnie-Herzégovine
qui résident déjà à Genève qu?ils soient attribués au canton de Genève.</_-Texte>
<TitreNonStandard element-id="000087">
<PointSeanceFin element-id="000088"/>
</TitreNonStandard>
</section>
</part>
</document>
--
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
|