Если вы сейчас где ваши параметры, вы можете использовать один XPath. Например, попробуйте это:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="language">F</xsl:param>
<xsl:param name="headerTitle-E">English Title</xsl:param>
<xsl:param name="headerTitle-F">French Title</xsl:param>
<xsl:template match="/">
<xsl:value-of select="document('')/*/
xsl:param[@name=concat('headerTitle-',$language)]"/>
</xsl:template>
</xsl:stylesheet>
Однако я считаю, что такого рода задачи лучше выполнять с использованием справочных таблиц, чем параметров.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:empo="lookup"
exclude-result-prefixes="empo"
version="1.0">
<xsl:param name="language">F</xsl:param>
<empo:header name="headerTitle-E">English Title</empo:header>
<empo:header name="headerTitle-F">French Title</empo:header>
<xsl:template match="/">
<xsl:value-of select="document('')/*/
empo:header[@name=concat('headerTitle-',$language)]"/>
</xsl:template>
</xsl:stylesheet>
Вы также можете использовать текущий заголовок как переменную, просто используйте:
<xsl:variable name="Header" select="document('')/*/
empo:header[@name=concat('headerTitle-',$language)]"/>