|
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 |