Mega Code Archive

 
Categories / ASP.Net / XML
 

XML transformation with extension

<%-- Code Revised from         Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback) by Thiru Thangarathinam  # Publisher: Wrox (January 18, 2006) # Language: English # ISBN: 0764596772 --%>                                <%@ Page Language="C#" %> <%@ Import Namespace="System.Xml" %> <%@ Import Namespace="System.Xml.Xsl" %> <%@ Import Namespace="System.Xml.XPath" %> <script runat="server">  public class Discount {   public Discount()   {   }     public string ReturnDiscount(string price)     {         decimal priceValue = Convert.ToDecimal(price);         return (priceValue * 15 / 100).ToString();     } }                     void Page_Load(object sender, System.EventArgs e)   {         string xmlPath = MapPath("BooksWithStyle.xml");         string xslPath = MapPath("Books_with_extensions.xsl");             XPathDocument xpathDoc = new XPathDocument(xmlPath);               XslCompiledTransform transform = new XslCompiledTransform();         XsltArgumentList argsList = new XsltArgumentList();         Discount obj = new Discount();         argsList.AddExtensionObject("urn:myDiscount", obj);         //Load the XSL stylsheet into the XslCompiledTransform object         transform.Load(xslPath);                         transform.Transform(xpathDoc, argsList, Response.Output);                 }         </script> <%-- <?xml version='1.0'?> <bookstore>   <book genre="A">     <title>title 1</title>     <author>       <first-name>A</first-name>       <last-name>B</last-name>     </author>     <price>99.99</price>   </book>   <book genre="B">     <title>title 2</title>     <author>       <first-name>B</first-name>       <last-name>C</last-name>     </author>     <price>11.99</price>   </book> </bookstore> --%> <%-- <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myDiscount="urn:myDiscount">   <xsl:output method="html" />     <xsl:template match="/">     <html>       <title>XSL Transformation</title>       <body>         <h2>My Book Collection</h2>         <table border="1">           <tr bgcolor="#9acd32">             <th align="left">Title</th>             <th align="left">Price</th>             <th align="left">Calculated Discount</th>           </tr>           <xsl:for-each select="bookstore/book">             <tr>               <td>                 <xsl:value-of select="title"/>               </td>               <td>                 <xsl:value-of select="price"/>               </td>               <td>                 <xsl:value-of select="myDiscount:ReturnDiscount(price)" />                               </td>             </tr>           </xsl:for-each>         </table>       </body>     </html>   </xsl:template> </xsl:stylesheet> --%>