">
We beg to apply to you the kind request for sending us one week before the publication one copy of Bulwer's novel:
Download presentation
Presentation is loading. Please wait.
1
Digital Media Technology
Week 6: Introduction to XSLT Peter Verhaar
2
Example: XML source <?xml version="1.0" encoding="UTF-8"?>
<letter> <head>Letter from De Erven F. Bohn to W. Blackwood and sons, January 22nd, 1873</head> <body> <dateline> <place>Haarlem</place> <date>22 January 1873</date> </dateline> <greeting>Dear Sirs!</greeting> <p>We beg to apply to you the kind request for sending us one week before the publication one copy of Bulwer's novel: <title>Kenelm Chillingly, His adventures and opinions</title>, which book you have in the press, for what we are inclined to pay 30 £. When it were possible to send us already now the first volume by the post; it would be yet more agreeable. Mr H.A. Kramers at Rotterdam readily will be our pledge.</p> <salute> your truly</salute> <signed>De Erven F. Bohn</signed> </body> </letter>
3
Getting started Include a template that points to the root element of the XML source. <?xml version="1.0" encoding="UTF-8"?> <letter> <head>Letter from De Erven F. Bohn to W. Blackwood and sons, January 22nd, 1873</head> <body> …. </body> </letter>
4
XML Result XSLT XML Source
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl=" Transform" version="1.0"> <xsl:template match="letter"> </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="UTF-8"?> <letter> … </letter> XML Result
5
Elements within <xsl:template>
Literal text can be added with the <xsl:text>element. e.g. <xsl:text>This sentence will be visible in the result.</xsl:text> HTML tags may be added directly e.g. <i><xsl:text>This text will be italicised<xsl:text></i>
6
Elements within <xsl:template>
Use <xsl:value-of> to select text from the XML source. e.g. <xsl:value-of select=“head”/> <xsl:value-of select=“body/dateline”/> Note that the paths in the select-attribute must depart from the element mentioned in the match-attribute of <xsl:template>
7
XSLT stylesheet <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match=“letter"> <html> <head> <title> <xsl:text>XSLT transformation</xsl:text> </title> </head> <body> <h2> <xsl:value-of select=“head”> </h2> </body> </html> </xsl:template> </xsl:stylesheet>
8
Exercise 1
9
Example: XML source <?xml version="1.0" encoding="UTF-8"?>
<EU> <country> <name> Belgium </name> <capital>Brussels</capital> </country> <name>Cyprus </name> <capital>Nicosia</capital> <name>Denmark </name> <capital>Copenhagen</capital> … </EU>
10
XSLT stylesheet <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="EU"> <ul><li> <xsl:text>The capital of </xsl:text> <xsl:value-of select="country/name"/> <xsl:text> is </xsl:text> <xsl:value-of select="country/capital"/> <xsl:text>.</xsl:text> </li></ul> </xsl:template> </xsl:stylesheet>
11
<xsl:for-each> needs to be used if all the elements on a certain level need to be shown.
This XSLT element takes a select-attribute Note that the paths within <xsl:for-each> must depart from the element that is mentioned mentioned in the select-attribute.
12
XSLT stylesheet <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="EU"> <ul> <xsl:for-each select="country"> <li> <xsl:text>The capital of </xsl:text> <xsl:value-of select="name"/> <xsl:text> is </xsl:text> <xsl:value-of select="capital"/> <xsl:text>.</xsl:text> </li> </xsl:for-each> </ul> </xsl:template> </xsl:stylesheet>
13
Exercise 2
14
<xsl:sort> Use <xsl:sort> to sort a list alphabeticaly or numerically This XSLT element also takes a select-attribute. It refers to the element the XSLT processor must sort by <xsl:sort> must be the direct child of <xsl:for-each> (or <xsl:apply-templates>)
15
Exercise 3
16
<xsl:if> <xsl:if> takes a “test” attribute
The instructions within <xsl:if> will only be carried out if the criterion in the test attribute can be evaluated as true Example: <xsl:if test=“date”> <xsl:value=“date”/> </xsl:if>
17
Exercise 4
18
Operators that can be used to formulate such tests:
The items that will be selected within the <xsl:for-each> loop can be filtered by adding a criterion within square brackets, directly after the element name. Operators that can be used to formulate such tests: = Equal to != Not equal to < Less than > Greater than
19
Exercise 5
20
Elements within <xsl:template>
<xsl:value-of> <xsl:text> <xsl:for-each> <xsl:sort> <xsl:if>
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.