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:\WebSite3\XMLFile.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:\WebSite3\XSLTFile.xslt"
Step 3 : Write the below code to in Page_Load or any event where you want to use XSLT Transformation .
string strXmlPath = @"C:\WebSite3\XMLFile.xml";
string strXslPath = @"C:\WebSite3\XSLTFile.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:\WebSite3\actual.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:\WebSite3\actual.html" . Please see the html created below :
No comments:
Post a Comment