Reputation: 11
my xml file name is product_file.xml and i have an xslt file , i am using a xml control in my webpage by binding xml & xslt files to the control but i am not getting the output properly. It showing only header multiple times
<?xml version="1.0" encoding="utf-8" ?>
<productlist>
<product>
<itemnumber>1</itemnumber>
<name>Staple Superior Men’s Jacket</name>
<description>The Staple Superior T-bone PU Jacket is classic hood with a drawstring fastening, long and a zip up front fastening.</description>
<color>BLACK</color>
<image>Staplesuperior1.gif</image>
<price>$140</price>
<size>69</size>
<quantity>1</quantity>
<category>Men</category>
</product>
<product>
<itemnumber>2</itemnumber>
<name>Afends Mens t-shirt</name>
<description>The Afends Thrash For Cash Raglan Tee has a scooped hemline, a 100% cotton composition, and a regular fit.</description>
<color>Beach Heather & Black</color>
<image>Afends1.gif</image>
<price>$90</price>
<size>80</size>
<quantity>1</quantity>
<category>Men</category>
</product>
<product>
<itemnumber>3</itemnumber>
<name>Wrangler Men Blue Vegas Skinny Fit Jeans</name>
<description>Blue 5 pocket jeans, stretchable, has a zip fly with buttoned closure in front, 2 scoop pockets at sides</description>
<image>Wrangler1.gif</image>
<color>BLUE</color>
<price>$125</price>
<size>32</size>
<quantity>1</quantity>
<category>Men</category>
</product>
<product>
<itemnumber>4</itemnumber>
<name>Roadster Women Top</name>
<description>Black top, knit, V neck, short extended sleeves, lattice like fabric manipulation detail at shoulders</description>
<color>BLACK</color>
<image>Roadster.gif</image>
<price>$55</price>
<size>Small</size>
<quantity>1</quantity>
<category>Women</category>
</product>
and my xslt file is
<xsl:template match="product">
<html>
<head>
<title>Products XSLT Demo</title>
</head>
<body>
<h2>Products Information</h2>
<br/>
<!--<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>-->
<table bgcolor="#008BE7" border="1">
<xsl:for-each select="itemnumber">
<tr>
<td>Item Number</td>
<td>
<xsl:value-of select="itemnumber"/>
</td>
</tr>
<tr> <td>name</td>
<td>
<xsl:value-of select="name"/>
</td>
</tr>
<tr>
<td>description</td>
<td>
<xsl:value-of select="description"/>
</td>
</tr>
<tr>
<td>color</td>
<td>
<xsl:value-of select="color"/>
</td>
</tr>
<tr>
<td>price</td>
<td>
<xsl:value-of select="price"/>
</td>
</tr>
<tr>
<td>size</td>
<td>
<xsl:value-of select="size"/>
</td>
</tr>
<tr> <td>quantity</td>
<td>
<xsl:value-of select="quantity"/>
</td>
</tr>
<tr>
<td>category</td>
<td>
<xsl:value-of select="category"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
now the error is the foreach expression not working so the ouput showing only heading multiple times
Upvotes: 0
Views: 111
Reputation: 1300
This seems to be working for me. changing the templatematch
to productlist
and foreach
to product
<xsl:template match="productlist">
<html>
<head>
<title>Products XSLT Demo</title>
</head>
<body>
<h2>Products Information</h2>
<br/>
<!--<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>-->
<table bgcolor="#008BE7" border="1">
<xsl:for-each select="product">
<tr>
<td>Item Number</td>
<td>
<xsl:value-of select="itemnumber"/>
</td>
</tr>
<tr> <td>name</td>
<td>
<xsl:value-of select="name"/>
</td>
</tr>
<tr>
<td>description</td>
<td>
<xsl:value-of select="description"/>
</td>
</tr>
<tr>
<td>color</td>
<td>
<xsl:value-of select="color"/>
</td>
</tr>
<tr>
<td>price</td>
<td>
<xsl:value-of select="price"/>
</td>
</tr>
<tr>
<td>size</td>
<td>
<xsl:value-of select="size"/>
</td>
</tr>
<tr> <td>quantity</td>
<td>
<xsl:value-of select="quantity"/>
</td>
</tr>
<tr>
<td>category</td>
<td>
<xsl:value-of select="category"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
Upvotes: 1