Ciao Mattia,

Grazie per la risposta. Mi hai spinta ad approfondire meglio predicati e assegnazioni.
La soluzione era in realtà più semplice. Invece che:

codice:
<xsl:template match="rPr">
<xsl:choose>
  <xsl:when test="stile[@attr='parentesi']">
    <xsl:text>(</xsl:text>
    <xsl:apply-templates select="following-sibling::t" />
    <xsl:text> )</xsl:text>
  </xsl:when>
  <xsl:otherwise>
    <xsl:apply-templates />
    </xsl:otherwise>
</xsl:choose>
</xsl:template>
Bisogna usare:

codice:
<xsl:template match="rPr">
<xsl:choose>
  <xsl:when test="stile[@attr='parentesi']">
    <xsl:text>(</xsl:text>
    <xsl:value-of select="." />
    <xsl:text> )</xsl:text>
  </xsl:when>
  <xsl:otherwise>
    <xsl:apply-templates />
    </xsl:otherwise>
</xsl:choose>
</xsl:template>
Ho poi un'altra domanda sui manuali on-line disponibili, ma posto un altro thread apposito.

Grazie per l'attenzione.