XML using xslt in ASP.Net :

XML

ProductList.xml

<?xml version="1.0" encoding="utf-8" ?>

<ProductDetails>

<products>

<productID>1</productID>

<proname>Shoe</proname>

<price>1000</price>

<description>Shoe Description</description>

<image>

<img src="image/2194484image3.jpg"></img>

</image>

</products>

<products>

<productID>2</productID>

<proname>Shoe 2</proname>

<price>1000</price>

<description>Shoe Description</description>

<image>

<img src="image/2353864Koala.jpg"></img>

</image>

</products>

<products>

<productID>3</productID>

<proname>Shoe 3</proname>

<price>1000</price>

<description>Shoe Description</description>

<image>

<img src="image/2353864Koala.jpg"></img>

</image>

</products>

</ProductDetails>

XSLT

ProductListXSLT.xslt

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-="" prefixes="msxsl">

<xsl:output method="xml" indent="yes"/>

<xsl:template match="@* | node()">

<xsl:copy>

<xsl:apply-templates select="@* | node()"/>

</xsl:copy>

</xsl:template>

--Start

<xsl:template match="/">

<h1>

<u>

<font>ProductList</font>

</u>

</h1>

<div>

<table>

<tr>

--for each Split Nodes

<xsl:for-each select="//ProductDetails//products">

<td style="width:150px;border:1px solid

silver;padding:10px;background:aliceblue;">

<table>

<tr>

<td style="font-family:verdana;font-weight:bold">

--xsl:value-of select Child Name

<xsl:value-of select="proname"/>

</td>

</tr>

<tr>

<td>

<xsl:value-of select="price"/>

</td>

</tr>

<tr>

<td>

<xsl:value-of select="description"/>

</td>

</tr>

<tr>

<td>

--Image Using

<img>

<input type="image" name="imagem" width="150px">

--Attributes

<xsl:attribute name="src">

<xsl:value-of select="image/img/@src" />

</xsl:attribute>

</input>

</img>

</td>

</tr>

</table>

</td>

</xsl:for-each>

</tr>

</table>

</div>

</xsl:template>

</xsl:stylesheet>

aspx :

<asp:Literal ID="litProductList" runat="server">

</asp:Literal>

Aspx.cs :

using System.Xml;

using System.Xml.Xsl;

protected void Page_Load(object sender, EventArgs e)

{

GetProductList();

}

public void GetProductList()

{

string xmlPath = Server.MapPath("ProductList.xml");

string xsltPath = Server.MapPath("ProductListXSLT.xslt");

// string htmlPath = Server.MapPath("ProductList.htm");

XmlReader objXMlReader = XmlReader.Create(xmlPath);

XslCompiledTransform objXSLCompTransform =

new XslCompiledTransform();

objXSLCompTransform.Load(xsltPath);

StringBuilder objStrBuil = new StringBuilder();

TextWriter objTextWri = new StringWriter(objStrBuil);

objXSLCompTransform.Transform(objXMlReader, null, objTextWri);

litProductList.Text = objStrBuil.ToString();

objXMlReader.Close();

}