Просто чтобы добавить свои мысли в стек
<xsl:template match="login_name[parent::current]">
<xsl:variable name="login" select="text()"/>
<xsl:value-of select='concat(ancestor::people/child::person[login_name=$login]/child::first/text()," ",ancestor::people/child::person[login_name=$login]/child::last/text())'/>
</xsl:template>
Я всегда предпочитаю использовать оси явно в моем XPath, более подробный, но более понятный ИМХО.
В зависимости от того, как выглядят остальные XML-документы (при условии, что это всего лишь фрагмент), вам может понадобиться ограничить ссылку на «ancestor :: people», например, используя «ancestor :: people [1]», чтобы ограничить предок первых людей.