Presentation is loading. Please wait.

Presentation is loading. Please wait.

XP 1 XSLT II Robin Burke ECT 360. XP 2 Outline Conditionals Numbering Functions and operators Variables and parameters Named and recursive templates.

Similar presentations


Presentation on theme: "XP 1 XSLT II Robin Burke ECT 360. XP 2 Outline Conditionals Numbering Functions and operators Variables and parameters Named and recursive templates."— Presentation transcript:

1 XP 1 XSLT II Robin Burke ECT 360

2 XP 2 Outline Conditionals Numbering Functions and operators Variables and parameters Named and recursive templates

3 XP 3 Conditional nodes XSLT supports two kinds of conditional elements: If is only if-then (no else) Choose is more general

4 XP 4 Example if choose

5 XP 5 Comparison operators

6 XP 6 Predicates XPath expressions test for a condition result = set of nodes that fulfill that condition

7 XP 7 Example from last week

8 XP 8 Numbering Number nodes using: position() Using position(): Nodes are numbered by position in result document Can be used in conditional statements

9 XP 9 Number element Nodes are numbered according to position in source document Attributes: value=expression: any XPath expression that evaluates to a number (i.e. position()) count=pattern: specifies which nodes to count level=type: tree level for nodes to count; can be any, single, or multiple

10 XP 10 USING Attributes: from=pattern: pattern indicates where numbering should restart format=pattern: pattern indicates number format grouping-size, grouping-separator: indicate how digits are grouped and separator character

11 XP 11 Example numbering

12 XP 12 XPath numerical functions

13 XP 13 XPath string functions

14 XP 14 XPath operators

15 XP 15 Example Calculating the average

16 XP 16 Number format XPath function format-number Syntax: format-number(value, format) Example: format-number(56823.847, '#,##0.00') displays 56,823.85

17 XP 17 Number format syntax

18 XP 18 Decimal format XSL element for defining number formats Named decimal format passed as argument to format-number

19 XP 19 Variables Not variable! User-defined name that stores a particular value or object Types: number text string node set boolean result tree fragment

20 XP 20 Using variables Syntax: Example: Names are case-sensitive Value only set once upon declaration Enclose text strings in single-quotes

21 XP 21 Using variables Value can be XPath expression Value can be XML fragment Syntax:

22 XP 22 Variable reference Syntax: $variable-name Example: $Months Referencing tree fragments: Do not use $variable-name Use to reference value

23 XP 23 COPYING

24 XP 24 Global variables Can be referenced from anywhere within the style sheet Must be declared at the top level of the style sheet, as a direct child of the element Must have a unique variable name Evaluated only once when stylesheet is invoked

25 XP 25 Local variables Referenced only within template Can share name with other local or global variable Reevaluated when template is used

26 XP 26 Examples average numbering

27 XP 27 Parameters Similar to variables, but: Value can be changed after it is declared Can be set outside of scope Syntax: Example: To reference: $param-name

28 XP 28 External parameters Depends on XSLT processor Some work by appending parameter value to url Command line processors allow external parameter setting: MSXML Saxon

29 XP 29 Template parameters Local in scope Created inside element Used to pass parameters to template

30 XP 30 Idea Called template contains param definitions Calling template place element in element or element Syntax: No error if calling param name does not match template param name

31 XP 31 Named template Template not associated with node set Collection of commands that are accessed from other templates in the style sheet Syntax: XSLT elements

32 XP 32 Calling named templates Syntax:...

33 XP 33 Example

34 XP 34 Functional programming Functional programming language: Relies on the evaluation of functions and expressions, not sequential execution of commands Different from C family of languages LISP, Scheme, ML

35 XP 35 Templates as functions A template supplies a result fragment incorporated into the final document think of this as substitution function call replaced by result

36 XP 36 Iteration How to handle iteration with templates? stars for ratings Possibilities convert numbers into node sets weird since node sets are supposed to come from the document recursive templates

37 XP 37 Recursion base case when do I stop? recursive case how do I bite off one piece call template again with the rest

38 XP 38 Example Template: star(rating) desired output: # stars = # in rating Base case: rating = 0 output: nothing Recursive case rating > 0 output: * plus result of star (rating-1)

39 XP 39 Example, cont'd star(3) replaced by * star(2) replaced by ** star(1) replaced by *** star(0) ***

40 XP 40 Pseudocode stars (n) if n = 0 return '' else return '*' + stars(n-1)

41 XP 41 Recursive pattern Syntax with :.........

42 XP 42 Example

43 XP 43 Another example "best rated" jeep supplier Finding maximum built into XSLT 2.0

44 XP 44 Recursive statement?

45 XP 45 What about the name?

46 XP 46 Homework #5 Case 1 from Chapter 7 Plus doing it "correctly" with CSS


Download ppt "XP 1 XSLT II Robin Burke ECT 360. XP 2 Outline Conditionals Numbering Functions and operators Variables and parameters Named and recursive templates."

Similar presentations


Ads by Google