XPath expressions can use customary, non-prefixed XHTML element names.
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" default-xpath-namespace="http://www.w3.org/1999/xhtml" > <xsl:output method="html" encoding="ISO-8859-1"/> <xsl:template match="week"> <html xml:lang="en" lang="en"> <head><title><xsl:value-of select="//h1[1]"/></title></head> <body bgcolor="#ffffff" text="#000000"> <xsl:apply-templates select="body"/> <font size="-1">Last Modified Mon June 5, 2001<br /> Copyright 2001 Elliotte Rusty Harold<br /> <a href="mailto:elharo@metalab.unc.edu">elharo@metalab.unc.edu</a> </font> </body> </html> </xsl:template> <xsl:template match="body"> <xsl:apply-templates select="text()[count(following-sibling::hr)>1]|*[count(following-sibling::hr)>1]"/> <hr/> </xsl:template> <xsl:template match="*"> <xsl:copy> <xsl:for-each select="@*"> <xsl:copy-of select="."/> </xsl:for-each> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="font[@size='-1']"></xsl:template> <xsl:template match="a"> <xsl:apply-templates/> </xsl:template> <xsl:template match="applet"> <xsl:apply-templates/> </xsl:template> <xsl:template match="param"/> </xsl:stylesheet>