Templates and Template Rules
To control what output is created from what input, you add
template rules to the XSLT stylesheet. Each template rule is
represented by an xsl:template
element. This element has a match
attribute that contains a pattern identifying the input
it matches; it also contains a template that is instantiated and
output when the pattern is matched. The terminology is a little tricky
here: the xsl:template
element is a
template rule that contains a template. An xsl:template
element is not itself the
template.
The simplest match pattern is an element name. Thus, this
template rule says that every time a person
element is seen, the stylesheet
processor should emit the text “A Person”:
<xsl:template match="person">A Person</xsl:template>
Example 8-4 is a complete stylesheet that uses this template rule.
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="person">A Person</xsl:template> </xsl:stylesheet>
Applying this stylesheet to the document in Example 8-1 produces this output:
<?xml version="1.0" encoding="utf-8"?> A Person A Person
There were two person
elements in the input document. Each time the processor saw one, it
emitted the text “A Person”. The whitespace outside the person
elements was preserved, but
everything inside the person
elements was replaced by the contents of the template rule, which is
called the template.
The text “A Person” ...
Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.