280 likes | 503 Views
XSLT: How Do We Use It?. Nancy Hallberg Nikki Massaro Kauffman. Introduction & Terminology XSLT Walkthrough Client-Side XSLT/XHTML Server-Side XSLT/XHTML More Creative Server-Side XSLT…. XSLT: Agenda. CSS HTML v. XHTML XML XPath XSL XSLT. XSLT: Terminology. XSLT: Alphabet Soup.
E N D
XSLT: How Do We Use It? Nancy Hallberg Nikki Massaro Kauffman
Introduction & Terminology XSLT Walkthrough Client-Side XSLT/XHTML Server-Side XSLT/XHTML More Creative Server-Side XSLT… XSLT: Agenda
CSS HTML v. XHTML XML XPath XSL XSLT XSLT: Terminology
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.
Parents Children Ancestors Descendents Siblings Attributes XSLT: XPath
Expanded Syntax /child::contacts/child::contact/child::lastname Abbreviated Syntax /contacts/contact/lastname XSLT: XPath
What do the following indicate? / iddCourseModel/courseTitleShort courseContent/lesson/page ../lesson[@directory != ‘lessonshare’] /contacts//phone XSLT: Xpath Examples
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… XML XSL Data XHTML
apply-templates call-template choose / when / otherwise comment for-each if import include key output param sort stylesheet template value-of variable XSLT: Template Elements
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, ndw1@psu.edu Nikki Massaro Kauffman, lnm105@psu.edu Additional resources are available at http://www.personal.psu.edu/lnm105