Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

Node selection by level

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <Book>   <Title>this is the title</Title>   <Authors>     <Author>A</Author>     <Author>B</Author>     <Author>C</Author>   </Authors>   <Year>2007</Year>   <Chapters>     <Chapter number="1" title="title 1">chapter 1</Chapter>     <Chapter number="2" title="title 2">chapter 2</Chapter>     <Chapter number="3" title="title 3">chapter 3</Chapter>     <Chapter number="4" title="title 4">chapter 4</Chapter>     <Chapter number="5" title="title 5">chapter 5</Chapter>   </Chapters> </Book> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   version="1.0">   <xsl:template match="/">     <html>       <head>         <title>           <xsl:value-of select="/Book/Title" />         </title>       </head>       <body>         <h3>           <xsl:value-of select="/Book/Title" />         </h3>         <p>           by           <xsl:apply-templates select="/Book/Authors/Author" />         </p>         <h3>Table of Contents</h3>         <xsl:apply-templates select="/Book/Chapters/Chapter"           mode="TOC" />         <xsl:apply-templates select="/Book/Chapters/Chapter"           mode="fulltext" />       </body>     </html>   </xsl:template> </xsl:stylesheet> Output: <html>    <head>       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">       <title>this is the title</title>    </head>    <body>       <h3>this is the title</h3>       <p>                    by                    ABC       </p>       <h3>Table of Contents</h3>chapter 1chapter 2chapter 3chapter 4chapter 5chapter 1chapter 2chapter 3chapter 4chapter 5    </body> </html>