RE: [xsl] Apply-templates - how to omit top level element tags?

Subject: RE: [xsl] Apply-templates - how to omit top level element tags?
From: "Mike Schinkel" <mikes@xxxxxxxxx>
Date: Thu, 8 Sep 2005 16:27:32 -0400
>> If the problem isn't yet solved, could we trouble you to repost a
demonstration?

As a former programming instructor and author of training materials and
a book on programming, I generally understand how to present info in
detail, and I thought I had.  But obviously not, so here's a complete
example (for posterity only, because I've solved the problem as you'll
see in comments):

===[XML]==================================================
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Test.xsl"?>
<How-To-Select xmlns:htsg="http://www.howtoselectguides.com/schema/";>
	<Guide>
		<Name>A ProductName<TrademarkSymbol/> is part of my
title<TrademarkSymbol/></Name>
		<Sections>
			<Section>Section 1</Section>
			<Section>Section 2</Section>
			<Section>Section 3</Section>
		</Sections>
	</Guide>
</How-To-Select>

===[XSL]==================================================
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xsl:stylesheet
	version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
	<xsl:output method="html"/>

	<xsl:variable name="trademark-symbol">&#8482;</xsl:variable>

	<xsl:template match="@*|node()">
		<xsl:copy>
			<xsl:apply-templates select="@*|node()"/>
		</xsl:copy>
	</xsl:template>

	<xsl:template match="Trademark">
		<xsl:value-of select="$trademark-symbol"/>
	</xsl:template>

	<xsl:template match="/How-To-Select/Guide">
		<html>
			<head><title>Test</title></head>
			<body>
				<h1>
					<!-- THIS DIDN'T WORK - INCLUDE
<Name/> TAGS -->
					<xsl:apply-templates
select="Name"/>
				</h1>
				<h1>
					<!-- THIS DIDN'T WORK - OMITS
Trademark Symbol -->
					<xsl:value-of select="Name"/>
				</h1>
				<h1>
					<!-- THIS DIDN'T WORK - INCLUDES
<Name/>, <Trademark/>, DOES NOT EXPAND <Trademark/> -->
					<xsl:copy-of select="Name"/>
				</h1>
				<h1>
					<!-- THIS IS WHAT I NEEDED -->
					<xsl:apply-templates
select="Name/node()"/>
				</h1>
				This is some more text just for show.
			</body>
		</html>
	</xsl:template>

</xsl:stylesheet>
==========================================================

Current Thread