Displaying XML Using XSLT
Last Updated :
13 May, 2021
Improve
XSLT stands for Extensible Stylesheet Language Transformation.
- XSLT is used to transform XML document from one form to another form.
- XSLT uses Xpath to perform matching of nodes to perform these transformation .
- The result of applying XSLT to XML document could be an another XML document, HTML, text or any another document from technology perspective.
- The XSL code is written within the XML document with the extension of (.xsl).
- In other words, an XSLT document is a different kind of XML document.
- XML Namespace is a mechanism by which element or attribute is assigned to a group.
- XML Namespace is used to avoid the name conflicts in the XML document.
- XML Namespace is recommended by W3C.
- Syntax:
<element xmlns:name = "URL">
where- Namespace starts with the xmlns.
- The word name is the namespace prefix.
- the URL is the namespace identifier.
- Example:
Consider the following xml document named Table.xml :-
xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/css" href="rule.css"?> <tables> <table> <tr> <td>Apple</td> <td>Banana</td> </tr> </table> <table> <height>100</height> <width>150</width> </table> </tables>
- Example:
Consider the same XML document to resolve name conflict:
xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/css" href="rule.css"?> <tables> <m:table xmlns:m=""http://www.google.co.in"> <m:tr> <m:td>Apple</m:td> <m:td>Banana</m:td> </m:tr> </m:table> <n:table xmlns:m=""http://www.yahoo.co.in"> <n:height>100</n:height> <n:width>150</n:width> </n:table> </tables>
- Xpath is an important component of XSLT standard.
- Xpath is used to traverse the element and attributes of an XML document.
- Xpath uses different types of expression to retrieve relevant information from the XML document.
- Xpath contains a library of standard functions.
Example:
- bookstore/book[1] => Fetches details of first child of bookstore element.
- bookstore/book[last()] => Fetches details of last child of bookstore element.
- An XSL stylesheet contains one or more set of rules that are called templates.
- A template contains rules that are applied when the specific element is matched.
- An XSLT document has the following things:
- The root element of the stylesheet.
- A file of extension .xsl .
- The syntax of XSLT i.e what is allowed and what is not allowed.
- The standard namespace whose URL is http://www.w3.org/1999/XSL/Transform.
- XML file:
Creating Students.xml as:
xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl "href="Rule.xsl" ?> <student> <s> <name> Divyank Singh Sikarwar </name> <branch> CSE</branch> <age>18</age> <city> Agra </city> </s> <s> <name> Aniket Chauhan </name> <branch> CSE</branch> <age> 20</age> <city> Shahjahanpur </city> </s> <s> <name> Simran Agarwal</name> <branch> CSE</branch> <age> 23</age> <city> Buland Shar</city> </s> <s> <name> Abhay Chauhan</name> <branch> CSE</branch> <age> 17</age> <city> Shahjahanpur</city> </s> <s> <name> Himanshu Bhatia</name> <branch> IT</branch> <age> 25</age> <city> Indore</city> </s> </student>
- XSLT Code:
Creating Rule.xsl as:
xml <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h1 align="center">Students' Basic Details</h1> <table border="3" align="center" > <tr> <th>Name</th> <th>Branch</th> <th>Age</th> <th>City</th> </tr> <xsl:for-each select="student/s"> <tr> <td><xsl:value-of select="name"/></td> <td><xsl:value-of select="branch"/></td> <td><xsl:value-of select="age"/></td> <td><xsl:value-of select="city"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
- Output :