Нет, ты не можешь так делать. (РЕДАКТИРОВАТЬ: по крайней мере, в XSLT 1.0, см. @ ответ Алехандро , как это сделать в XSLT 2.0.)
Узел XML не имеет понятия офайл, в котором он был сохранен, поскольку XML не обязательно соответствует фактическому файлу в первую очередь.Поэтому вы не можете написать шаблон, который соответствует только узлам в определенном файле.
Вы можете объявить параметр,
<xsl:param name="fileName" select="''" />
заполнить его из вашей программы на C # значением по вашему выборуи затем заставить программу XSLT вести себя по-разному в зависимости от значения этого параметра:
<xsl:template match="root">
<xsl:choose>
<xsl:when test="$fileName = 'plop.xml'">
<!-- do something -->
</xsl:when>
<xsl:otherwise>
<!-- do something else -->
</xsl:otherwise>
</xsl:choose>
</xsl:template>