Sono arrivata alla conclusione che non devo selezionare l'ultimo elemento di body, ma devo scrivere subito dopo body, perché il testo che devo inserire viene messo dentro back!
Inoltre mi sa che stavo sbagliando... Non mi serve di richiamare il template forse, non sono sicura.
La questione è che devo inserire del testo, in modalità preflight, dentro il mio file xml, prima che inizi la sua trasformazione xsl.
Allora io, dentro il mio template, devo indicare il punto esatto dove deve scrivere il codice, quindi forse sarebbe più opportuna una funzione.
Perché quello che stavo facendo era: scrivere il mio template nel file dei procedimenti preflight, richiamarlo nel file dove applica le trasformazioni, e qui indicare dove deve stamparlo.
Ma se sta agendo in modalità preflight, quindi prima di applicare la trasformazione, non dovrebbe essere necessario richiamarlo nell'altro file (perché dovrebbe inserirlo nel file xml in modalità prelight!).
A questo punto cambia il mio problema. Sto cercando di capire come costruire una funzione che scriva subito dopo body, ma non riesco a capire come scriverne una!
O forse va bene anche usare il template, e scrivere qualcosa del genere:
codice:
<xsl:template match="tei:body">
<xsl:choose>
<xsl:when test="position()=last()">
<back>
<div type="mioTemplate">
miaSelezione:
<xsl:apply-templates select="quello che voglio selezionare">
<xsl:sort order="ascending">
<xsl:value-of select="."/>
</p>
</xsl:sort>
</xsl:apply-templates>
</div>
</back>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Solo che se provo a fare così molto semplicemente non mi stampa nel file di output tutto il body.
Mi sta venendo il dubbio in quest'istante che forse dovrei specificare il file sulla quale questa parte di codice deve lavorare, perché sto modificando un file che ne prende in esami molti altri... E forse è per questo che fallisce. Mi sto attorcigliando da sola