Upload
abigail-blake
View
220
Download
0
Embed Size (px)
DESCRIPTION
XSLT: Terminology CSS HTML v. XHTML XML XPath XSL XSLT
Citation preview
XSLT: How Do We Use It?
Nancy HallbergNikki Massaro Kauffman
XSLT: Agenda
• Introduction & Terminology• XSLT Walkthrough • Client-Side XSLT/XHTML• Server-Side XSLT/XHTML• More Creative Server-Side XSLT…
XSLT: Terminology
• CSS• HTML v. XHTML• XML• XPath• XSL• XSLT
XSLT: Alphabet Soup
• CSS & HTML• XML - Extensible Markup Language• XSL - Extensible Stylesheet Language• XHTML
XSLT: XPath
• XPath is a language for finding information in an XML document.
• XPath is used to navigate through elements and attributes in an XML document.
• Location paths can be Relative or Absolute.
XSLT: XPath
• Parents• Children• Ancestors• Descendents• Siblings• Attributes
XSLT: XPath
• Expanded Syntax /child::contacts/child::contact/child::lastname
• Abbreviated Syntax /contacts/contact/lastname
XPath Abbreviated Syntax
/ // . .. @ * [ ]
XSLT: Xpath Examples
What do the following indicate?• /• iddCourseModel/courseTitleShort• courseContent/lesson/page• ../lesson[@directory != ‘lessonshare’]• /contacts//phone
XSLT: What is XSLT?
• Extensible Stylesheet Language Transformation
• Transforms XML documents into other documents Another XML doc HTML doc PDF file And more….
XSLT: How Do We Use XSLT?
• Often used as client-side to cache formatting so only data is downloaded.
• Can transform into PDF, EDI, or other formats.
• We use it for XHTML page navigation, CSS, DWT, .htaccess, and more…
Data XHTML
XSLXML
XSLT: Template Elements
• apply-templates• call-template• choose / when /
otherwise• comment• for-each• if• import• include
• key • output• param• sort • stylesheet• template• value-of• variable
XSLT: <xsl:stylesheet>
• Defines the root element of a stylesheet.
<xsl:stylesheet> or <xsl:transform>
XSLT: <xsl:output>
• Defines the format of the output document.
• It must be a top-level element.• Method attributes are xml, html, text
<xsl:output method="html” encoding="ISO-8859-1"/>
XSLT: <xsl:template>
• An XSLT stylesheet consists of one or more set of rules that are called templates.
• Each template contains rules to apply when a specified node is matched.
• The value of the match attribute is an XPath expression.
<xsl:template match="/">
XSLT: <xsl:text>
• Exactly what it sounds like - writes text to the output.
• Attribute of disable-output-escaping
<xsl:text disable-output-escaping="yes"><![CDATA[<a name="top" id="top"></a>]]></xsl:text>
XSLT: <xsl:variable>
• Declares a variable• The variable is global if it's declared as a
top-level element, and local if it's declared within a template.
• Once you have set a variable's value, you cannot change or modify that value!
<xsl:variable name="titleofpage">Course Syllabus</xsl:variable>
XSLT: <xsl:value-of>
• Extracts the value of an XML element and adds it to the output stream of the transformation.
• The value of the select attribute is an XPath expression.
<xsl:value-of select="iddCourseModel/CourseTitleLong” />
XSLT: <xsl:if>
• Yea! Conditionals.• Test is a required attribute. It contains
the expression to be evaluated.
<xsl:if test="iddCourseModel/gencourPhil"></xsl:if>
<xsl:if test="mi != ''"></xsl:if>
XSLT: <xsl:for-each>
• Selects every element in a specified node set.
<xsl:for-each select="iddCourseModel/gencourPhil">
XSLT: <xsl:sort>
• Sorts the output• The select attribute indicates what
XML element to sort on.
<xsl:sort select="@orderNumber" data-type="number" order ="ascending"/>
XSLT: <xsl:choose>• Multiple conditionals• Instead of If – Then – Else or switch case• Choose – When - Otherwise<xsl:choose> <xsl:when test="objectiveStem"> <p><xsl:value-of select="objectiveStem” /></p> </xsl:when> <xsl:otherwise> <p>Upon completion of this course you will:</p> </xsl:otherwise></xsl:choose>
XSLT: <xsl:apply-templates>
• The <xsl:apply-templates> element applies a template to the current element or to the current element's child nodes.
• Adding a select attribute to the <xsl:apply-templates> element makes it process only the child element that matches the value of the attribute.
• Using the select attribute can also specify the order in which the child nodes are processed.
XSLT: <xsl:call-template>
• Templates can be called by name.• Calls can be recursive.• Be careful of the difference between
apply-templates & call-template.
XSLT: <xsl:param>
• Declares a parameter• The parameter is global if it's declared as
a top-level element, and local if it's declared within a template.
• To pass a parameter to it from another template, use <xsl:with-param>.<xsl:param name="theme"/><xsl:with-param name="theme"><xsl:value-of
select="$theme"/></xsl:with-param>
XSLT: <xsl:import>
• Imports the contents of one style sheet into another.
• An imported style sheet has lower precedence than the importing style sheet.
• This element must appear as the first child node of <xsl:stylesheet> or <xsl:transform>.
XSLT: <xsl:include>
• The <xsl:include> element is a top-level element that includes the contents of one style sheet into another.
• An included stylesheet has the same precedence as the including style sheet.
• This element must appear as a child node of <xsl:stylesheet> or <xsl:transform>.
XSLT: <xsl:key>
• a top-level element which declares a named key that can be used in the style sheet with the key() function.
<xsl:key name="themes" match="theme" use="@name"/>
<xsl:for-each select="key('themes', $theme)"><xsl:variable name="dark"><xsl:value-of select="@dark"/></xsl:variable></xsl:for-each>
XSLT: Help
Feel free to contact us with questions:
Nancy Hallberg, [email protected]
Nikki Massaro Kauffman, [email protected]
Additional resources are available at http://www.personal.psu.edu/lnm105