xsl-list
[Top] [All Lists]

Re: Stripping empty elements while still conforming to DTD

2005-09-28 09:16:08

Is there a simple way to strip empty elements from an XML while still
conforming to the requirements of the DTD?  I know how to use the
string() function to copy only those elements that contain data, but
this often removes child elements required by the DTD. 

It depends what you mean by simple. XSLT has no access to the
declarations in a DTD (or at least the XSLT programmer has no access via
XSLT) so you have to put the information in "by hand" so it's simple but
tedious if the dtd is big

<xsl:template match="*[not(node())]"/> 
zaps all empty elements, except...

<xsl:template match="wibble/[not(node())]">
<xsl:copy-of select="."/>
</xsl:template>

empty elements that are children of wibble, which are copied.

David


________________________________________________________________________
This e-mail has been scanned for all viruses by Star. 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
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>