xsl-list
[Top] [All Lists]

RE: remove certain elements but keep children

2004-10-03 23:47:12
Hi,

I'm writing an app that aggregates html into a single doc. 
The chunks of 
html are put into the new document wrapped in "output" tags. These 
output tags can be intermingled with html tags.

I'm trying to come up with an xpath or xsl template(s) that 
will remove 
the output tags, while leaving their child html and without producing 
duplicate content.

Here's an example doc:

<output>
      <div>
              <output>
                      <h1>a header</h1>
                      <p>some stuff</p>
                      <output>
                              <div>
                                      <p>foo bar</p>
                              </div>
                      </output>
                      <p>more html</p>
              </output>
      </div>
      <p>some html</p>
</output>

And I want it to be:

<div>
      <h1>a header</h1>
      <p>some stuff</p>
              <div>
                      <p>foo bar</p>
              </div>
              <p>more html</p>
</div>
<p>some html</p>

In pseudo-code:

xsl:template match=node() | @*
  xsl:copy
    xsl:apply-templates select=node() | @*

xsl:template match=output
  xsl:apply-templates select=node()

Cheers,

Jarno - VNV Nation: Legion (janus)