Subject: RE: [xsl] Apply-templates - how to omit top level element tags? From: "Mike Schinkel" <mikes@xxxxxxxxx> Date: Wed, 7 Sep 2005 19:20:16 -0400 |
Thanks for your help thus far. However, that doesn't seem to be working. Here is a fragment of the XSL code I have <h1><xsl:apply-templates select="Name" mode="cover-page-title"/></h1> And here is the template I have defined <xsl:template match="Name" mode="cover-page-title"> <xsl:value-of select="."/> </xsl:template> And <xsl:variable name="trademark-symbol">™</xsl:variable> <xsl:template match="myns:TrademarkSymbol" myns="myns:TrademarkSymbol"> <xsl:value-of select="$trademark-symbol"/> </xsl:template> In my XML document document I have: <Name>My Title<myns:TrademarkSymbol/></Name> And my output is still: <h1>My Title</h1> Instead of what I want: <h1>My Title(tm)</h1> I've tried lots of different things, but each time I just get either <h1>My Title</h1> Or <h1></h1> -Mike -----Original Message----- From: Antsnio Mota [mailto:amsmota@xxxxxxxxx] Sent: Wednesday, September 07, 2005 4:01 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Apply-templates - how to omit top level element tags? Then you use modes. > <xsl:apply-templates select="Name" mode="PutH1"/> <xsl:apply-templates > select="Name" mode="PutSomeOtherThing"/> > <xsl:template match="Name" mode="PutH1"> > <h1> > <xsl:value-of select="."/> > </h1> > </xsl:template> > <xsl:template match="Name" mode="PutSomeOtherThing"> > <h2><b> > <xsl:value-of select="."/> > </b></h2> > </xsl:template> On 9/7/05, Mike Schinkel <mikes@xxxxxxxxx> wrote: > Thanks. Question, I use "Name" in many contexts in my XML. How can I do this when I don't always want "Name" to be handled that way? > > -Mike > > -----Original Message----- > From: Antsnio Mota [mailto:amsmota@xxxxxxxxx] > Sent: Wednesday, September 07, 2005 3:44 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Apply-templates - how to omit top level element tags? > > You should use > <h1><xsl:apply-templates select="Name"/></h1> > > and then a template for Name > > <xsl:template match="Name"> > <xsl:value-of select="."/> > </xsl:template> > > or better > > <xsl:apply-templates select="Name"/> > <xsl:template match="Name"> > <h1> > <xsl:value-of select="."/> > </h1> > </xsl:template> > > > > On 9/7/05, Mike Schinkel <mikes@xxxxxxxxx> wrote: > > To all: > > > > I'm trying to figure out how to use <xsl:apply-templates> (or > > anything > > else) to get the right output: > > > > I've got an XML file and am generated XHTML. > > > > In my XSL file, I have the following variable and template: > > > > ========================================== > > <xsl:variable name="trademark-symbol">™</xsl:variable> > > <xsl:template match="htsg:TrademarkSymbol" name="htsg:TrademarkSymbol"> > > <xsl:value-of select="$trademark-symbol"/> </xsl:template> > > ========================================== > > > > In my XML file, I have a fragment that looks like this: > > > > ========================================== > > <Name>This is the Title of the > > Publication<myns:TrademarkSymbol/></Name> > > ========================================== > > > > I want to generate output that looks like this: > > > > ========================================== > > <h1>This is the Title of the Publication(tm)</h1> > > ========================================== > > > > However, if I use this in my XSL: > > > > ========================================== > > <h1><xsl:apply-templates select="Name"/></h1> > > ========================================== > > > > I get the following that includes the <Name> element: > > > > ========================================== > > <h1><Name>This is the Title of the Publication(tm)</Name></h1> > > ========================================== > > > > When I try instead to use this: > > > > ========================================== > > <h1><xsl:value-of select="Name/text()"/></h1> > > ========================================== > > > > I just get this w/o the trademark: > > > > ========================================== > > <h1>This is the Title of the Publication</h1> > > ========================================== > > > > Again, this is what I want to generate as output: > > > > ========================================== > > <h1>This is the Title of the Publication(tm)</h1> > > ========================================== > > > > > > I look forward and appreciate any suggestions, even those that might > > have be taking a completely different route, but I also really want > > to understand how to accomplish this using apply-templates or > > value-of or whatever. > > > > Thanks in advance for your help. > > > > -Mike Schinkel > > Publisher - How-To-Select(tm) Guides > > http://www.howtoselectguides.com/ mailto:mikes@xxxxxxxxxxxxxxxxxxxxx > > 404-591-5701 (V) > > 404-591-5731 (F)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Apply-templates - how to , Wendell Piez | Thread | Re: [xsl] Apply-templates - how to , António Mota |
RE: [xsl] Apply-templates - how to , Wendell Piez | Date | RE: [xsl] Apply-templates - how to , Mike Schinkel |
Month |