Другой способ обойти ограничение документа - использовать следующее:
<xsl:template name="getMonth">
<xsl:param name="name" />
<xsl:choose>
<xsl:when test="$name = 'Jan'">01</xsl:when>
<xsl:when test="$name = 'Feb'">02</xsl:when>
<xsl:when test="$name = 'Mar'">03</xsl:when>
<xsl:when test="$name = 'Apr'">04</xsl:when>
<xsl:when test="$name = 'May'">05</xsl:when>
<xsl:when test="$name = 'Jun'">06</xsl:when>
<xsl:when test="$name = 'Jul'">07</xsl:when>
<xsl:when test="$name = 'Aug'">08</xsl:when>
<xsl:when test="$name = 'Sep'">09</xsl:when>
<xsl:when test="$name = 'Oct'">10</xsl:when>
<xsl:when test="$name = 'Nov'">11</xsl:when>
<xsl:when test="$name = 'Dec'">12</xsl:when>
<xsl:otherwise>99</xsl:otherwise>
</xsl:choose>
</xsl:template>
Вызывается с помощью
<xsl:call-template name="getMonth">
<xsl:with-param name="name" select="substring(./pubDate,9,3)" />
</xsl:call-template>
Это не красиво, но, по крайней мере, вам не нужно беспокоиться о безопасности