user2181131
user2181131

Reputation: 11

xslt with xml control in asp.net

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 &amp; 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

Answers (2)

Rameez Ahmed Sayad
Rameez Ahmed Sayad

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

Hans Derks
Hans Derks

Reputation: 1027

Change the foreach to

<xsl:for-each select=".">  

Upvotes: 0

Related Questions