Presentation is loading. Please wait.

Presentation is loading. Please wait.

95-733 Internet Technologies1 1 Lecture 4: Programming with XSLT.

Similar presentations


Presentation on theme: "95-733 Internet Technologies1 1 Lecture 4: Programming with XSLT."— Presentation transcript:

1 95-733 Internet Technologies1 1 Lecture 4: Programming with XSLT

2 95-733 Internet Technologies2 How do we execute XSLT? Using a standalone tool such as Xalan. By calling Xalan from within a program. By calling Xalan from within a servlet.

3 95-733 Internet Technologies3 The Catcher in the Rye J. D. Salinger Little, Brown and Company Input Netbeans Project 95-733/TestXSLT XSLT Example (1)

4 95-733 Internet Technologies4 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> Processing

5 95-733 Internet Technologies5 The Catcher in the Rye J. D. Salinger Little, Brown and Company Output

6 95-733 Internet Technologies6 The Catcher in the Rye J. D. Salinger Little, Brown and Company Input XSLT Example (2)

7 95-733 Internet Technologies7 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> The default rules matches the root, library and block elements.

8 95-733 Internet Technologies8 The Catcher in the Rye J. D. Salinger Little, Brown and Company The output is the same.

9 95-733 Internet Technologies9 The Catcher in the Rye J. D. Salinger Little, Brown and Company Cliff Notes on The Catcher in the Rye There are two book elements in the input. XSLT Example (3)

10 95-733 Internet Technologies10 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> What’s the output?

11 95-733 Internet Technologies11 The Catcher in the Rye J. D. Salinger Little, Brown and Company Cliff Notes on The Catcher in the Rye Illegal HTML

12 95-733 Internet Technologies12 The Catcher in the Rye J. D. Salinger Little, Brown and Company Input XSLT Example (4)

13 95-733 Internet Technologies13 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!-- --> We are not matching on publisher.

14 95-733 Internet Technologies14 The Catcher in the Rye J. D. Salinger Little, Brown and Company We get the default rule matching the publisher and then printing its child.

15 95-733 Internet Technologies15 The Catcher in the Rye J. D. Salinger Little, Brown and Company Input XSLT Example (5)

16 95-733 Internet Technologies16 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> We can skip the publisher by matching and stopping the recursion.

17 95-733 Internet Technologies17 The Catcher in the Rye J. D. Salinger

18 95-733 Internet Technologies18 The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company A shelf has many books. XSLT Example (6)

19 95-733 Internet Technologies19 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> Will this do the job?

20 95-733 Internet Technologies20 The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company This is not what we want.

21 95-733 Internet Technologies21 The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company Same input. XSLT Example (7)

22 95-733 Internet Technologies22 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> Found a shelf Checks for a shelf and quits.

23 95-733 Internet Technologies23 Found a shelf Output

24 95-733 Internet Technologies24 The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company Same input. XSLT Example (8)

25 95-733 Internet Technologies25 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> These are a few of my favorite books Produce a table of books.

26 95-733 Internet Technologies26 These are a few of my favorite books 1 The Catcher in the Rye J. D. Salinger Little, Brown and Company 2 The XSLT Programmer's Reference Michael Kay Wrox Press 3 Computer Organization and Design Patterson and Henessey Morgan Kaufmann

27 95-733 Internet Technologies27

28 95-733 Internet Technologies28 XPATH Non-xml language used to identify particular parts of an xml document Used by XSLT for matching and selecting particular elements to be copied into the result tree. Used by Xpointer to identify a particular point in or part of an xml document that an Xlink links to. Slides adapted from “XML in a Nutshell” by Harold

29 95-733 Internet Technologies29 XPATH First, we’ll look at three commonly used XSLT instructions: xsl:value-of xsl:template xsl:apply-templates

30 95-733 Internet Technologies30 XPATH The xsl:value-of element computes the string value of an Xpath expression and inserts it into the result tree. XPath allows us to select nodes in the tree and different node types produce different values.

31 95-733 Internet Technologies31 XPATH element => the text content of the element after all tags are stripped text => the text of the node attribute => the value of the attribute root => the value of the root processing-instruction => the processing instruction data (, and the target are not included comment => the text of the comment (no comment symbols) namespace => the namespace URI node set => the value of the first node in the set

32 95-733 Internet Technologies32 XPATH The xsl:template top-level element is the key to all of xslt. The match attribute contains a pattern (location path) against which nodes are compared as they’re processed. If the pattern matches a node, then the contents are instantiated

33 95-733 Internet Technologies33 XPATH Find and apply the highest priority template that matches the node set expression. If the select attribute is not present then all children of the context node are processed.

34 95-733 Internet Technologies34 An XML Document Alan Turing computer scientist mathematician cryptographer See Harol147

35 95-733 Internet Technologies35 Richard M Feynman physicist Playing the bongoes Unicode ‘M’

36 95-733 Internet Technologies36 / person born = “1914” died = “1952” id=“p342” person name first_name Alan <!– Did the word “computer scientist” exist in Turing’s day?”-- > profession The XML Infoset is the abstract data model.

37 95-733 Internet Technologies37 The root Element Nodes Text Nodes Attribute Nodes Comment Nodes Processing Instructions Namespace Nodes Nodes seen by XPath Constructs not seen by XPath CDATA sections Entity references Document Type Declarations

38 95-733 Internet Technologies38 Note The following appears in each example below so it has been removed from the slides. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > :

39 95-733 Internet Technologies39 Location Paths The root matched the root matched the root

40 95-733 Internet Technologies40 Location Paths Child element location paths (relative to context node) computer scientist

41 95-733 Internet Technologies41 Location Paths Attribute location paths (relative to context node) 1912

42 95-733 Internet Technologies42 Location Paths Attribute location paths (relative to context node) 1912 1918

43 95-733 Internet Technologies43 Location Paths Comment Location Step (comments don’t have names) Did the word "computer scientist" exist in Turing's day?

44 95-733 Internet Technologies44 Location Paths Comment Location Step comment deleted Document content with comments replaced as shown. Default – no comments output

45 95-733 Internet Technologies45 Location Paths Text Location Step (Text nodes don’t have names) computer scientist

46 95-733 Internet Technologies46 Location Paths Processing Instruction Location Step type="text/xsl" href = "pi.xsl"

47 95-733 Internet Technologies47 Location Paths Wild cards There are three wild cards: *, node(), @* The * matches any element node. It will not match attributes, text nodes, comments or processing instructions nodes.

48 95-733 Internet Technologies48 Location Paths Matching with * Matches all elements and requests calls on sub-elements only. Nothing is displayed. The text nodes are never reached.

49 95-733 Internet Technologies49 Location Paths Matching with node() The node() wild card matches all nodes: element nodes, text nodes, attribute nodes, processing instruction nodes, namespace nodes and comment nodes.

50 95-733 Internet Technologies50 Matching with Node What is the output?

51 95-733 Internet Technologies51 Matching with Node -Output

52 95-733 Internet Technologies52 Location Paths Matching with @* The @* wild card matches all attribute nodes.

53 95-733 Internet Technologies53 Matching with @* Found an attribute What is the output?

54 95-733 Internet Technologies54 Matching with @* - Output Found an attribute 1912 Found an attribute 1954 Found an attribute p342 Found an attribute 1918 Found an attribute 1988 Found an attribute p4567

55 95-733 Internet Technologies55 Matching with @* 19121954p342 19181988p4567

56 95-733 Internet Technologies56 Location Paths Multiple matches with | Matches all the elements. Skips the text nodes unless they describe a profession or hobby.

57 95-733 Internet Technologies57 Location Paths Selecting from all descendants with // // selects from all descendants of the context node as well as the context node itself. At the beginning of an Xpath expression, it selects from all descendants of the root node.

58 95-733 Internet Technologies58 Location Paths Selecting from all descendants with // TuringFeynman

59 95-733 Internet Technologies59 Location Paths Selecting from all descendants with // Alan

60 95-733 Internet Technologies60 Location Paths Selecting from all descendants with // AlanRichard

61 95-733 Internet Technologies61 Location Paths Selecting from all descendants with // Richard

62 95-733 Internet Technologies62 Specifying the Child Axis Consider the following path: /Envelope/Header/Signature The above is an abbreviation for /child::Envelope/child::Header/child::Signature

63 95-733 Internet Technologies63 Using an Axis

64 95-733 Internet Technologies64 What is the output?

65 95-733 Internet Technologies65 Richard M Feynman Alan Turing Axis Example - Output

66 95-733 Internet Technologies66 Writing Output to an Attribute

67 95-733 Internet Technologies67 Writing Output to an Attribute

68 95-733 Internet Technologies68 Predicates In general, an Xpath expression may refer to more than one node. Predicates allow us to reduce the number of nodes we are interested in. Each step in a location path may have a predicate that selects from the node list that is current at that step in the expression. The boolean expression in the predicate is tested against each node in the context node list. If the expression is false then that node is deleted from the list.

69 95-733 Internet Technologies69 Predicates Richard M Feynman

70 95-733 Internet Technologies70 Predicates Richard M Feynman physicist Playing the bongoes

71 95-733 Internet Technologies71 Predicates Alan Turing computer scientist mathematician cryptographer

72 95-733 Internet Technologies72 Predicates Richard M Feynman physicist Playing the bongoes

73 95-733 Internet Technologies73 Predicates <xsl:apply-templates select = "/people/person[@born < 1950]/ name[first_name='Alan']" /> Alan Turing

74 95-733 Internet Technologies74 General XPath Expressions Xpath expressions that are not node sets can’t be used in the match attribute of an xsl:template element. They can be used for the values for the select attribute of xsl:value-of elements and in location path predicates.

75 95-733 Internet Technologies75 General XPath Expressions 191.2191.8

76 95-733 Internet Technologies76 General XPath Expressions Xpath Functions Person Person 1 Person 2

77 95-733 Internet Technologies77 General XPath Expressions Xpath Functions Mr. T. Mr. T. Alan Turing Node set converted to string


Download ppt "95-733 Internet Technologies1 1 Lecture 4: Programming with XSLT."

Similar presentations


Ads by Google