The Default Template Rule for Text and Attribute Nodes
The most basic built-in template rule copies the value of text and attribute nodes into the output document. It looks like this:
<xsl:template match="text( )|@*"> <xsl:value-of select="."/> </xsl:template>
The text( ) node test is a
pattern matching all text nodes, just as first_name is a pattern matching all
first_name element nodes.
@* is a pattern matching all
attribute nodes. The vertical bar combines these two patterns so
that the template rule matches both text and attribute nodes. The
rule’s template says that whenever a text or attribute node is
matched, the processor should output the value of that node. For a
text node, this value is simply the text in the node. For an
attribute, this value is the attribute value but not the
name.
Example 8-10 is an
XSLT stylesheet that pulls the birth and death dates out of the
born and died attributes in Example 8-1. The default
template rule for attributes takes the value of the attributes, but
an explicit rule selects those values. The @ sign in @born and @died indicates that these are attributes
of the matched element rather than child elements.
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="people"> <html> <head><title>Famous Scientists</title></head> <body> <dl> <xsl:apply-templates/> </dl> </body> </html> </xsl:template> <xsl:template ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access