XML Tutorial :XML transformation using XSLT with example

XSLT is used to transform XML data into a different form (commonly XML or HTML).

Few characteristics of XSLT :

  1. The language used for converting XML documents into other forms

  2. Describes how the document is transformed

  3. Expressed as an XML document (.xsl)

  4. Template rules

    • Patterns match nodes in source document

    • Templates instantiated to form part of result document

  5. Uses XPath for querying, sorting, etc.

XSLT

Important Namespaces for XSLT :

  1. System.Xml;
  2. System.Xml.XPath;
  3. 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&#8221;
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 :

Leave a Reply