Subject: Re: [xsl] Apply-templates - how to omit top level element tags? From: António Mota <amsmota@xxxxxxxxx> Date: Thu, 8 Sep 2005 00:34:33 +0100 |
If the problem is in the use of namespaces, i'm not the guy to help you. However, in case it's not, try to use <xsl:template match="Name" mode="cover-page-title"> <xsl:value-of select="."/> <xsl:apply-templates select="*"/> </xsl:template> so you can catch the <xsl:template match="myns:TrademarkSymbol"> But i'm not a expert, so if this doesn't work you better wait for tomorrow answers... On 9/8/05, Mike Schinkel <mikes@xxxxxxxxx> wrote: > 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 , Mike Schinkel | Thread | RE: [xsl] Apply-templates - how to , Mike Schinkel |
RE: [xsl] Apply-templates - how to , Mike Schinkel | Date | [xsl] Moving an element to a new lo, Graves, Jim \(CONTR\ |
Month |