XSLT is used to transform XML data into a different form (commonly XML or HTML).
Few characteristics of XSLT :
-
The language used for converting XML documents into other forms
-
Describes how the document is transformed
-
Expressed as an XML document (.xsl)
-
Template rules
-
Patterns match nodes in source document
-
Templates instantiated to form part of result document
-
Uses XPath for querying, sorting, etc.
Important Namespaces for XSLT :
-
System.Xml;
-
System.Xml.XPath;
-
System.Xml.Xsl;
XSLT with example
Step 1 : Create a XML file.
<?xml version=”1.0″ encoding=”utf-8″ ?>
<school>
<name>XYZ School</name>
<address1>123 , XYZ </address1>
<address2>ABC Road</address2>
<city>XYZ city</city>
<country>India</country>
</school>
For example , name the to “XMLFile.xml” and place it at path “C:WebSite3XMLFile.xml”
Step 2 : Create XSLT file.
<?xml version=”1.0″ encoding=”utf-8″?>
<xsl:stylesheet
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”
version=”1.0″>
<!– indicates what our output type is going to be –>
<xsl:output method=”html” />
<!–
Main template to kick off processing our Sample.xml
From here on we use a simple XPath selection query to
get to our data.
–>
<xsl:template match=”/”>
<html>
<head>
<title>
Welcome : <xsl:value-of select=”/school/name”/>
</title>
<style>
body,td {font-family:Tahoma,Arial; font-size:9pt;}
</style>
</head>
<body>
<h2>
<xsl:value-of select=”/school/name”/>
</h2>
<p/>
<b>Contact details:</b>
<br/>
<br/>
<xsl:value-of select=”/school/name”/>
<br/>
<xsl:value-of select=”/school/address1″/>
<br/>
<xsl:value-of select=”/school/address2″/>
<br/>
<xsl:value-of select=”/school/city”/>
<br/>
<xsl:value-of select=”/school/country”/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
For example , name the above file to XSLTfile.xslt and place it at path “C:WebSite3XSLTFile.xslt”
Step 3 : Write the below code to in Page_Load or any event where you want to use XSLT Transformation .
string strXmlPath = @”C:WebSite3XMLFile.xml”;
string strXslPath = @”C:WebSite3XSLTFile.xslt”;
//load the Xml doc
XPathDocument XPathDoc = new XPathDocument(strXmlPath);
XslTransform xslTrans = new XslTransform();
//load the Xsl
xslTrans.Load(strXslPath);
//create the output stream
XmlTextWriter xmlWriter = new XmlTextWriter(@”C:WebSite3actual.html”, null);
//do the actual transform of Xml
xslTrans.Transform(XPathDoc, null, xmlWriter);
xmlWriter.Close();
Step 4 : Run the above code .
This creates html in the location “C:WebSite3actual.html” . Please see the html created below :