DOC PREVIEW
Penn CIT 597 - Extensible Stylesheet Language Transformations

This preview shows page 1-2-14-15-29-30 out of 30 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

XSLT Jan 13 2019 XSLT XSLT stands for Extensible Stylesheet Language Transformations XSLT is used to transform XML documents into other kinds of documents usually but not necessarily XHTML XSLT uses two input files The XML document containing the actual data The XSL document containing both the framework in which to insert the data and XSLT commands to do so 2 Very simple example File data xml xml version 1 0 xml stylesheet type text xsl href render xsl message Howdy message File render xsl xml version 1 0 xsl stylesheet version 1 0 xmlns xsl http www w3 org 1999 XSL Transform one rule to transform the input root xsl template match html body h1 xsl value of select message h1 body html xsl template xsl stylesheet 3 The xsl file An XSLT document has the xsl extension The XSLT document begins with xml version 1 0 xsl stylesheet version 1 0 xmlns xsl http www w3 org 1999 XSL Transform Contains one or more templates such as xsl template match xsl template And ends with xsl stylesheet 4 Finding the message text The template xsl template match says to select the entire file You can think of this as selecting the root node of the XML tree Inside this template xsl value of select message selects the message child Alternative Xpath expressions that would also work message message text text is an XPath function message text 5 Putting it together The XSL was xsl template match html body h1 xsl value of select message h1 body html xsl template The xsl template match chooses the root The html body h1 is written to the output file The contents of message is written to the output file The h1 body html is written to the output file The resultant file looks like html body h1 Howdy h1 body html 6 How XSLT works The XML text document is read in and stored as a tree of nodes The xsl template match template is used to select the entire tree The rules within the template are applied to the matching nodes thus changing the structure of the XML tree If there are other templates they must be called explicitly from the main template Unmatched parts of the XML tree are not changed After the template is applied the tree is written out again as a text document 7 Where XSLT can be used With an appropriate program such as Xerces XSLT can be used to read and write files A server can use XSLT to change XML files into HTML files before sending them to the client A modern browser can use XSLT to change XML into HTML on the client side This is what we will mostly be doing in this class Most users seldom update their browsers If you want everyone to see your pages do any XSL processing on the server side Otherwise think about what best fits your situation 8 Modern browsers Internet Explorer 6 best supports XML Netscape 6 supports some of XML Internet Explorer 5 x supports an obsolete version of XML IE5 is not good enough for this course If you must use IE5 the initial PI is different you can look it up if you ever need it 9 xsl value of xsl value of select XPath expression selects the contents of an element and adds it to the output stream The select attribute is required Notice that xsl value of is not a container hence it needs to end with a slash Example from an earlier slide h1 xsl value of select message h1 10 xsl for each xsl for each is a kind of loop statement The syntax is xsl for each select XPath expression Text to insert and rules to apply xsl for each Example to select every book book and make an unordered list ul of their titles title use ul xsl for each select book li xsl value of select title li xsl for each ul 11 Filtering output You can filter restrict output by adding a criterion to the select attribute s value ul xsl for each select book li xsl value of select title author Terry Pratchett li xsl for each ul This will select book titles by Terry Pratchett 12 Filter details Here is the filter we just used xsl value of select title author Terry Pratchett author is a sibling of title so from title we have to go up to its parent book then back down to author This filter requires a quote within a quote so we need both single quotes and double quotes Legal filter operators are lt gt Numbers should be quoted but apparently don t have to be 13 But it doesn t work right Here s what we did xsl for each select book li xsl value of select title author Terry Pratchett li xsl for each This will output li and li for every book so we will get empty bullets for authors other than Terry Pratchett There is no obvious way to solve this with just xsl value of 14 xsl if xsl if allows us to include content if a given condition in the test attribute is true Example xsl for each select book xsl if test author Terry Pratchett li xsl value of select title li xsl if xsl for each This does work correctly 15 xsl choose The xsl choose xsl when xsl otherwise construct is XML s equivalent of Java s switch case default statement The syntax is xsl choose xsl when test some condition some code xsl when xsl otherwise some code xsl choose is often xsl otherwise used within an xsl choose xsl for each loop 16 xsl sort You can place an xsl sort inside an xsl for each The attribute of the sort tells what field to sort on Example ul xsl for each select book xsl sort select author li xsl value of select title by xsl value of select author li xsl for each ul This example creates a list of titles and authors sorted by author 17 xsl text xsl text xsl text helps deal with two common problems XSL isn t very careful with whitespace in the document This doesn t matter much for HTML which collapses all whitespace anyway though the HTML source may look ugly xsl text gives you much better control over whitespace it acts like the pre element in HTML Since XML defines only five entities you cannot readily put other entities such as nbsp in your XSL amp nbsp almost works but nbsp is visible on the page Here s the secret formula for entities xsl text disable output escaping yes amp nbsp xsl text 18 Creating tags from XML data Suppose the XML contains name Dr Dave s Home Page name url http www cis upenn edu matuszek url And you want to turn this into a href http www cis upenn edu matuszek Dr Dave s Home Page a We need additional tools to do this It doesn t even help if the XML directly contains a href http www cis upenn edu matuszek Dr Dave …


View Full Document

Penn CIT 597 - Extensible Stylesheet Language Transformations

Documents in this Course
DOM

DOM

21 pages

More DOM

More DOM

11 pages

Rails

Rails

33 pages

DOM

DOM

21 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

Rake

Rake

12 pages

Ruby

Ruby

58 pages

DOM

DOM

21 pages

Tomcat

Tomcat

16 pages

DOM

DOM

21 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Html

Html

27 pages

DOM

DOM

22 pages

RELAX NG

RELAX NG

30 pages

Servlets

Servlets

28 pages

XHTML

XHTML

13 pages

DOM

DOM

21 pages

DOM

DOM

21 pages

Servlets

Servlets

26 pages

More CSS

More CSS

18 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Load more
Download Extensible Stylesheet Language Transformations
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Extensible Stylesheet Language Transformations and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Extensible Stylesheet Language Transformations and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?