Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

Use for-each loop to output table row

File: Data.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="Transform.xslt"?> <INVENTORY>    <BOOK InStock="yes">       <TITLE>title 1</TITLE>       <AUTHOR Born="1835">author 1</AUTHOR>       <BINDING>paperback</BINDING>       <PAGES>298</PAGES>       <PRICE>$5.49</PRICE>    </BOOK>    <BOOK InStock="no">       <TITLE>Leaves of Grass</TITLE>       <AUTHOR Born="1819">W</AUTHOR>       <BINDING>hardcover</BINDING>       <PAGES>462</PAGES>       <PRICE>$7.75</PRICE>    </BOOK> </INVENTORY> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet    version="1.0"     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    <xsl:template match="/">       <HTML>       <HEAD>          <TITLE>Books in Stock</TITLE>       </HEAD>       <BODY>       <H2>Books In Stock</H2>       <TABLE BORDER="1" CELLPADDING="5">          <THEAD>             <td>Title</TH>             <td>Author</TH>             <td>Binding Type</TH>             <td>Number of Pages</TH>             <td>Price</TH>          </THEAD>          <xsl:for-each select="INVENTORY/BOOK[@InStock='yes']">             <TR ALIGN="CENTER">                <TD>                   <xsl:value-of select="TITLE"/>                </TD>                <TD>                   <xsl:value-of select="AUTHOR"/> <BR/>                   (born <xsl:value-of select="AUTHOR/@Born"/>)                </TD>                <TD>                   <xsl:value-of select="BINDING"/>                </TD>                <TD>                   <xsl:value-of select="PAGES"/>                </TD>                <TD>                   <xsl:value-of select="PRICE"/>                </TD>             </TR>          </xsl:for-each>       </TABLE>       </BODY>       </HTML>    </xsl:template> </xsl:stylesheet> Output: <HTML>    <HEAD>       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">       <TITLE>Books in Stock</TITLE>    </HEAD>    <BODY>       <H2>Books In Stock</H2>       <TABLE BORDER="1" CELLPADDING="5">          <THEAD>             <td>Title</TH>             <td>Author</TH>             <td>Binding Type</TH>             <td>Number of Pages</TH>             <td>Price</TH>          </THEAD>          <TR ALIGN="CENTER">             <TD>title 1</TD>             <TD>author 1<BR>                (born 1835)                             </TD>             <TD>paperback</TD>             <TD>298</TD>             <TD>$5.49</TD>          </TR>       </TABLE>    </BODY> </HTML>