Re: [xsl] Removing tags automatically efter xsl transformation!

Subject: Re: [xsl] Removing tags automatically efter xsl transformation!
From: gutman@xxxxxxxxxxxxxxx
Date: Tue, 7 Aug 2001 19:42:38 +0700
Hello.

Klosa Uwe wrote:
> I want to remove tags like <tag/> (without any child and string-length 
of
> zero) from my output. I'm transforming xml-files to different formats. 
In
> some I don't want to have "empty" tags.

Do you want

  (1) to remove all elements with empty content or
  (2) to prevent their appearance in the output?

These are different wiches.
For instance, what you want to do with the following input?

  <one>
    <two>
      <three/>
    </two>
  <one/>

If you want (1) then the output will be

  <one>
    <two/>
  <one/>

But if you want (2), I guess, the output will be empty.
In the case of (1), here is a solution:

  <xsl:template match="*">
    <xsl:if test="node()">
      <xsl:copy>
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="node()"/>
      </xsl:copy>
    </xsl:if>
  </xsl:template>

As for (2), I will start thinking
only after you say you really want it. :-)

-- 
Alexander E. Gutman

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread