Предполагая
<xml>
<date>2009-11-18</date>
</xml>
Это решение XSLT 1.0 сделает это:
<xsl:template match="date">
<xsl:copy>
<xsl:value-of select="
concat(
substring(., 9, 2),
'-',
substring(., 6, 2),
'-',
substring(., 1, 4)
)
" />
</xsl:copy>
</xsl:template>
Если ваша дата может быть
<xml>
<date>2009-11-1</date>
</xml>
вам придется использовать чуть более сложный
<xsl:template match="date">
<xsl:copy>
<xsl:value-of select="
concat(
substring-after(substring-after(., '-'), '-'),
'-',
substring-before(substring-after(., '-'), '-'),
'-',
substring-before(., '-')
)
" />
</xsl:copy>
</xsl:template>