This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Selecting Parent Nodes with Empty Children
- From: "J.Pietschmann" <j3322ptm at yahoo dot de>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Fri, 05 Apr 2002 22:39:12 +0200
- Subject: Re: [xsl] Selecting Parent Nodes with Empty Children
- References: <AFF2D32D2C84D311B3F000105A23152303D02955@pony1.mustangeng.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hellstern, Manny wrote:
> I have XML that looks like:
> <APP>
> <SECTION id="first">
> <CONTROL type="button">
> <VALUE />
> </CONTROL>
> <CONTROL type="text">
> <VALUE>dummy text</VALUE>
> </CONTROL>
> </SECTION>
...
> </APP>
>
> What I want to select is a tree fragment that looks like:
>
> <SECTION id="first>
> <CONTROL type="text">
> <VALUE>dummy text</VALUE>
> </CONTROL>
> </SECTION>
I'm not sure how your subject line relates to your
question.
I *guess* you are asking for an XSLT transformation
which transforms your "have" to "want". This can't
be easily done by what's meant by "selecting" in the
sense of the XSLT spec, but you can have a transformation
which does this.
Furthermore i guess you want to have elements deleted
which dont have *any* non-whitespace text in them.
The following is a suboptimal but almost working
attempt:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*">
<xsl:if test="normalize-space(.)">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
HTH
J.Pietschmann
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list