This is a poor document design. You shouldn't have book elements named <book1>, <book2>, and so on - it makes the data very hard to process. You would be much better off using attributes: <book number="1"> and so on.
However, in this case the answer isn't difficult, you just want
<xsl:template match="/">
<xsl:variable name="t" select="booklist/value"
<xsl:copy-of select="booklist/*[name()=$t]"/>
</xsl:template>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference