[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
RE: Empty nodes AND attributes stripping - I'm so lost
Subject: RE: Empty nodes AND attributes stripping - I'm so lost - SOLUTION
From: "Kevinjohn Gallagher" <web_design_guru@xxxxxxxxxxx>
Date: Thu, 02 Sep 2004 18:25:34 +0100
|
Firstly, thanks for all the help.
I'm including my solution here so others might benefit.
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" />
<xsl:strip-space elements="*"/>
<xsl:template match="//parent/myContent//@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*[.='']"/>
<xsl:template match="//parent/myContent/*[.='' and not(attribute::*)]"/>
</xsl:stylesheet>
Cheers
Bryan
From: "Michael Kay" <mhk@xxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: RE: Empty nodes AND attributes stripping - I'm so lost
Date: Thu, 2 Sep 2004 17:21:43 +0100
Except that you also appear to define an element as being empty if all its
children are empty, unless it is a myContent element. But David has given
you the principle: once you sort out what the rules are, writing them in
XSLT isn't difficult.
You can match an element that is empty in the sense above with
match="*[not(.//text())]"
provided you have used
<xsl:strip-space elements="*"/>
to remove the whitespace text nodes.
Michael Kay
> -----Original Message-----
> From: David Carlisle [mailto:davidc@xxxxxxxxx]
> Sent: 02 September 2004 16:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: Empty nodes AND attributes stripping - I'm so lost
>
>
> just copy the identity transform from the xslt spec:
>
>
> <xsl:template match="@*|node()">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> </xsl:copy>
> </xsl:template>
>
> then add a template to zap empty attributes:
>
> <xsl:template match="@*[.='']"/>
>
> and a template to zap empty elements
>
>
> <xsl:template match="*[not(node())]"/>
>
> David
>
>
> ______________________________________________________________
> __________
> This e-mail has been scanned for all viruses by Star Internet. The
> service is powered by MessageLabs. For more information on a proactive
> anti-virus service working around the clock, around the globe, visit:
> http://www.star.net.uk
> ______________________________________________________________
> __________
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|