Subject: Re: [xsl] Moving nested elements to root level From: Kevin Rodgers <kevin.rodgers@xxxxxxx> Date: Fri, 27 May 2005 10:36:37 -0600 |
jpk writes: > I am in need of a transform that moves all instances > of a given element to the root level. So given the > target element name is 'br' and this as input: > > <p> > <strong> > strong:text(top) <br/>prefix > <span style="a style"> > span a > <span style="rgb();"> > span b<br/> text > </span> > text > </span> > strong:text(btm) <br/>suffix<br/> > </strong> > Root level text with<br/> tag. > </p> > > > I want to get something like this: > > <p> > <strong> > strong:text(top) > </strong> > <br/> ... Just a guess: 1. Use the identity transformation to copy everything by default: <xsl:template name="identity" match="@*|node()" mode="#all"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> 2. Write a template for the p target element that augments the identity transformation with its br descendants: <xsl:template match="p"> <xsl:copy> <xsl:apply-templates select="@*|node()|*//br"/ mode="copy"> </xsl:copy> </xsl:template> 3. Plus a template to suppress the br elements in their original place in the tree: <xsl:template match="br" mode="#default"> </xsl:template> I added the mode attributes to the templates last, to try to distinguish when the identity and suppress templates should be applied to the br elements. -- Kevin Rodgers
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Moving nested elements to roo, jpk | Thread | [xsl] Automatic html generation of , Frequent Fliers |
Re: [xsl] Automatic html generation, Frequent Fliers | Date | RE: [xsl] Encoding Issues with Java, Brook Ellingwood |
Month |