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 :
-
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 :
XML Tutorial : Introduction to XML
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
- Each element has a beginning and ending tag . <TAG_NAME>…</TAG_NAME>
- Elements can be empty (<TAG_NAME />)
Attributes
- Describes an element; e.g. data type, data range, etc.
- Can only appear on beginning tag
- Encoding specification (Unicode by default)
- Namespace declaration
- Schema declaration
Rules of Well Formed XML
- XML is case-sensitive
- There must be one, and only one, root element
- Sub-elements must be properly nested
- A tag must end within the tag in which it was started
- Attributes are optional
- Defined by an optional schema
- Attribute values must be enclosed in “” or ‘’
- Processing instructions are optional