View Single Post
 
Old December 20th, 2007, 06:03 AM
mhkay's Avatar
mhkay mhkay is offline
Wrox Author
Points: 18,487, Level: 59
Points: 18,487, Level: 59 Points: 18,487, Level: 59 Points: 18,487, Level: 59
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Apr 2004
Location: Reading, Berks, United Kingdom.
Posts: 4,962
Thanks: 0
Thanked 292 Times in 287 Posts
Default

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