<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output encoding="utf-8"/>

<xsl:template match="table">
  <document>
    <xsl:apply-templates select="row[1]"/>
  </document>
</xsl:template>

<xsl:template match="row">
  <row>
    <first>
      <xsl:value-of select="firstname"/>
    </first>
    <last>
      <xsl:value-of select="lastname"/>
    </last>
  </row>
  <xsl:apply-templates select="following-sibling::row[1]"/>
</xsl:template>

</xsl:stylesheet>