Use value-of to get element value from different level : value of « XSLT stylesheet « XML Tutorial






File: Data.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="Transform.xslt"?>

<BOOK>
   <TITLE>Jack</TITLE>
   <AUTHOR>
      <FIRSTNAME>Jack</FIRSTNAME>
      <LASTNAME>Smith</LASTNAME>
   </AUTHOR>
   <BINDING>hardcover</BINDING>
   <PAGES>724</PAGES>
   <PRICE>$9.95</PRICE>
</BOOK>

File: Transform.xslt

<?xml version="1.0"?>
<xsl:stylesheet
   version="1.0" 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:template match="/">  <!-- match the XSLT root node -->
      <HTML>
      <HEAD>
         <TITLE>Book Description</TITLE>
      </HEAD>
      <BODY>
      <H2>Book Description</H2>
      <SPAN STYLE="font-style:italic">Author: </SPAN>
      <xsl:value-of select="BOOK/AUTHOR"/><BR/>
      <SPAN STYLE="font-style:italic">Title: </SPAN>
      <xsl:value-of select="BOOK/TITLE"/><BR/>
      <SPAN STYLE="font-style:italic">Price: </SPAN>
      <xsl:value-of select="BOOK/PRICE"/><BR/>
      <SPAN STYLE="font-style:italic">Binding type: </SPAN>
      <xsl:value-of select="BOOK/BINDING"/><BR/>
      <SPAN STYLE="font-style:italic">Number of pages: </SPAN>
      <xsl:value-of select="BOOK/PAGES"/>
      </BODY>
      </HTML>
   </xsl:template>

</xsl:stylesheet>

Output:

<HTML>
   <HEAD>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <TITLE>Book Description</TITLE>
   </HEAD>
   <BODY>
      <H2>Book Description</H2><SPAN STYLE="font-style:italic">Author: </SPAN>
      Jack
      Smith
      <BR><SPAN STYLE="font-style:italic">Title: </SPAN>Jack<BR><SPAN STYLE="font-style:italic">Price: </SPAN>$9.95<BR><SPAN STYLE="font-style:italic">Binding type: </SPAN>hardcover<BR><SPAN STYLE="font-style:italic">Number of pages: </SPAN>724
   </BODY>
</HTML>








5.72.value of
5.72.1.Use value-of to get element value from different level
5.72.2.Select value from an element
5.72.3.value-of select="."
5.72.4.value-of select=cars/manufacturer/@name separator=,
5.72.5.value-of select=format-date($date, [M01]/[D01]/[Y0001])
5.72.6.value-of select=replace($sub2, ', '')
5.72.7.output an element only if it has a value.
5.72.8.the output without empty elements removal