Download presentation
Presentation is loading. Please wait.
Published byAshley Ross Modified over 9 years ago
1
XSLT I Robin Burke ECT 360
2
Outline XSLT processing XSLT syntax XPath XSLT basics Lab
3
Admin Announcement Milestone #4
4
high-tech entrepreneurship networking event Friday, October 21 5-7pm, CTI Collaboration Lab, Free Surf to www.depaulcti.com for more information Have you ever thought of using your IT skills to start your own company? Join other CTI students and alumni in exploring the possibilities. e, CTI’s new high-tech entrepreneurship club invites you to an open house to mingle, network, and learn. We will present info on DePaul’s New Venture (business plan) Competition, with $5,000 in prizes – and help you find teammates. Refreshments served.
5
XML XSL "family" of standards XSL-FO formatting objects typesetting document = a set of geometric areas organized on pages XSLT transformations XPath supports both a language for addressing individual XML nodes
6
XSL-FO Example
7
XSLT HTML example
8
XSLT syntax XML document stylesheet root element templates "rule-based" processing
9
XSLT Processing Let L be a list of nodes Let T be a list of templates style (L, T) = Find a template t matching L Instantiate t using L May call style (L', T) Return instantiated template To process a document style ( { root }, T )
10
Special purpose XSLT is not a general-purpose programming language lacks many conventional facilities technically a "tree-rewriting" language XSLT 2.0 is more general purpose
11
Example Jeep suppliers The first one is <xsl:value-of select="/child::entries/child::entry[position() = 1]/child::address/child::name/child::text()" />
12
Note stylesheet element output type element
13
Running example value-of1
14
XPath XPath expression "/child::entries/child::entry[position() = 1]/child::address/child::name/child::text()" How to read "/" = root and delimiter for steps axis::step = a move in the XML document :: = "that is" or "that are" [] = apply some predicate position () = compute the position of this element in its list of siblings text() = the element content Result is a set of nodes
15
Axes self this node child immediate descendant descendant any descendant attribute attribute list following siblings to the right preceding siblings to the left
16
Steps Depends on axis element name attribute name can be associated with a predicate foo[attribute::bar='5'] entry[position() = 2]
17
XPath shortcuts Axes can be abbreviated default = child @ = attribute // = descendant. = self.. = parent Steps text() can be omitted [position() = n] can be [n] Abbreviated version "/child::entries/child::entry[1]/child::address/child::name/child::text()" "/entries/entry[1]/address/name"
18
Example with simplified syntax
19
XML Document
20
Paths All "name" elements? All advertisers? All non-advertisers? The rating of the second entry? All advertisers with a rating above 3? The second line of every address?
21
For-each May want to operate on all nodes in a set for-each element instantiates contents once for every node in set
22
Example listing just names
23
Multiple templates Typically a stylesheet will have multiple templates Easier to read / debug Templates often correspond to elements More modular
24
Templates template element match attribute describes nodes that use the template content template to instantiate apply-templates element select attribute what nodes to use position shows where in the parent element the result is inserted
25
Example
26
Whitespace XSLT automatically removes whitespace this is often correct when it isn't use text element
27
Path mismatch Biggest source of errors end path has no content Check path local path template match apply-template select Match/select should overlap by one step
28
Example template choice
29
Building an element http:// Becomes foo.org
30
Alternate syntax Becomes foo.org
31
Sorting We can sort node lists after they are selected before they are operated on for-each apply-templates Embed sort element
32
Sorting, cont'd What does this do?
33
Example complex selection and sorting
34
Break / Lab
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.