Subject: RE: [xsl] XSL nested tag help From: "Passin, Tom" <tpassin@xxxxxxxxxxxx> Date: Mon, 7 Oct 2002 17:45:05 -0400 |
[Mani Malarvannan ] > For my XSL nested tag question some of you responded with a solution > of using text(), but that solution is not working. When I tried with > the solution, the text under "Target" tag is printing at the end > of text under "Main" ie, > > <h1>This is a first test message it is important<h1> > <h2> and <h2> > > But I need the output to be > <h1>This is a first test message <h2> and </h2> it is important</h1> > > I have not been following this thread closely, but it seems to me that you just want to replace "Main" elements with "h1" elements, and "Target" elements with "h2". The easest way to do this is to is using an identity transform to copy everything you do not want changed. I illustrate this below, but first there is another point. Your output looks like html, but it is not actually valid html, because header elements may not nest inside other header elements according to the html Recommendation. So even if current browsers may display it the way you intend, I suggest you find another way to represent your results. You can use css to produce the appearance you want. Of course, this is getting off-topic for the list. I would suggest (then I will leave this topic) <div class='Main'>This is a first test message <span class='Target'>and</span> it is important</div> This approach preserves the semantics of your source and does not abuse HTML just to get a certain appearance. Here is the xslt example (it ignores comments and processing instructions, but you can easily add them in if you need to): <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <result> <xsl:apply-templates/> </result> </xsl:template> <xsl:template match='Main'> <h1><xsl:apply-templates/></h1> </xsl:template> <xsl:template match='Target'> <h2><xsl:apply-templates/></h2> </xsl:template> <!-- Identity transformation template --> <xsl:template match='*|@*'> <xsl:copy> <xsl:apply-templates select="@* | * "/> </xsl:copy> </xsl:template> </xsl:stylesheet> Cheers, Tom P XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XSL nested tag help, Michael Kay | Thread | Re: [xsl] XSL nested tag help, Joerg Heinicke |
Re: [xsl] XSL nested tag help, Joerg Heinicke | Date | Re: [xsl] Add an element to the res, Joerg Heinicke |
Month |