Bonjour,
je voudrais pouvoir générer une élément XML dont la balise de début <monElt> serait générée dans un template, et la balise de fin dans un autre template.

Par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<!-- xsl tag  START -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
   <xsl:apply-templates select="/myNode" mode="Debut" />
   .... traitements
   <xsl:apply-templates select="/myNode" mode="Fin" />
</xsl:template>
 
<xsl:template match="myNode" mode="Debut">
   <monElt>
</xsl:template>
<xsl:template match="myNode" mode="Fin">
   </monElt>
</xsl:template>
Malheureusement le processeur XSLT génère deux erreurs equivalentes, une dans chaque template.
Par exemple, pour le premier template :
Le balise de fin xsl:template ne correspond pas à la balise de début monElt
Le processeur XSLT semble considérer que la définition de template doit etre bien formée d'un point de vue XML.

Je ne peux pas utiliser l'élément <xsl:element> pour generer l'element monElt
car en resultat de <xsl:element> les deux balises debut et fin sont générées, empéchant d'insérer du texte.

Y a-t-il un moyen en XSL d'ajouter en deux étapes différentes les deux balises début et fin d'un element XML de sortie?

Merci d'avance pour votre aide