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 :

XML Tutorial : Introduction to XML

XML stands for EXtensible Markup Language

XML Document below :
 <ORDER>
<NUM> PO-1234 </NUM>
<CUSTID> SAM </CUSTD>
<ITEM> COMPUTER </ITEM>
<QUANTITY> 5 </QUANTITY>
<PRICE> 138 </PRICE>
</ORDER>

Components of an XML Document :

Elements

  1. Each element has a beginning and ending tag . <TAG_NAME>…</TAG_NAME>
  2. Elements can be empty (<TAG_NAME />)

Attributes

  1. Describes an element; e.g. data type, data range, etc.
  2. Can only appear on beginning tag
Processing instructions
  1. Encoding specification (Unicode by default)
  2. Namespace declaration
  3. Schema declaration

Rules of Well Formed XML

  1. XML is case-sensitive
  2. There must be one, and only one, root element
  3. Sub-elements must be properly nested
  4. A tag must end within the tag in which it was started
  5. Attributes are optional
  6. Defined by an optional schema
  7. Attribute values must be enclosed in “” or ‘’
  8. Processing instructions are optional