Displaying XML Using XSLT - GeeksforGeeks

13 May, 2021
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: XML Namespaces are the unique names .
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.
XML Namespace Declaration:It is declared using reserved attribute such as the attribute is xmlns or it can begin with xmlns:
Syntax: <element xmlns:name = "URL">whereNamespace starts with the xmlns.The word name is the namespace prefix.the URL is the namespace identifier.
 <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 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>In the above code, there would be a name conflict, both of them contain the same table element but the contents of the table element are different.To handle this situation, the concept of XML Namespace is used.
<?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>
In the above code, there would be a name conflict, both of them contain the same table element but the contents of the table element are different.To handle this situation, the concept of XML Namespace is used.
Example:Consider the same XML document to resolve name conflict:<?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>
<?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:
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.
bookstore/book[1] => Fetches details of first child of bookstore element.
bookstore/book[last()] => Fetches details of last child of bookstore element.
Templates:
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.
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.
Example:In this example, creating the XML file that contains the information about five students and displaying the XML file using XSLT.
XML file:Creating Students.xml as:<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl "href="Rule.xsl" ?> <student>  
   <name> Divyank Singh Sikarwar </name>   <branch> CSE</branch>   <age>18</age>   <city> Agra </city>  
  
   <name> Aniket Chauhan </name>   <branch> CSE</branch>   <age> 20</age>   <city> Shahjahanpur </city>  
  
    <name> Simran Agarwal</name>   <branch> CSE</branch>   <age> 23</age>   <city> Buland Shar</city>  
  
    <name> Abhay Chauhan</name>   <branch> CSE</branch>   <age> 17</age>   <city> Shahjahanpur</city>  
  
    <name> Himanshu Bhatia</name>   <branch> IT</branch>   <age> 25</age>   <city> Indore</city>  
 </student>In the above example, Students.xml is created and linking it with Rule.xsl which contains the corresponding XSL style sheet rules.
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl "href="Rule.xsl" ?> <student>  
   <name> Divyank Singh Sikarwar </name>   <branch> CSE</branch>   <age>18</age>   <city> Agra </city>  
  
   <name> Aniket Chauhan </name>   <branch> CSE</branch>   <age> 20</age>   <city> Shahjahanpur </city>  
  
    <name> Simran Agarwal</name>   <branch> CSE</branch>   <age> 23</age>   <city> Buland Shar</city>  
  
    <name> Abhay Chauhan</name>   <branch> CSE</branch>   <age> 17</age>   <city> Shahjahanpur</city>  
  
    <name> Himanshu Bhatia</name>   <branch> IT</branch>   <age> 25</age>   <city> Indore</city>  
 </student>
In the above example, Students.xml is created and linking it with Rule.xsl which contains the corresponding XSL style sheet rules.
XSLT Code:Creating Rule.xsl as:<?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>
Creating Rule.xsl as:
<?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 :
Attention reader! Don’t stop learning now. Get hold of all the important HTML concepts with the Web Design for Beginners | HTML  course.
clintra
HTML and XML
Web technologies-HTML and XML
Web Technologies
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Top 10 Front End Developer Skills That You Need in 2022
How to fetch data from an API in ReactJS ?
Difference between var, let and const keywords in JavaScript
Convert a string to an integer in JavaScript
Differences between Functional Components and Class Components in React
How to create footer to stay at the bottom of a Web page?
How to Open URL in New Tab using JavaScript ?
How to redirect to another page in ReactJS ?
How to Insert Form Data into Database using PHP ?
How to pass data from child component to its parent in ReactJS ?