[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Frank,
ps -- any particular reason why you have xsl:preserve-space="*"? In data-centric input this is pretty unusual. It's especially unusual to ask whitespace-only text to be preserved everywhere, as you have it. It's more common than not for such whitespace to be entirely cosmetic, and thus mungeable, so the results of stripping it instead and letting the serializer indent it again (as in my revised code) is often considered cleaner and preferable.
The glaring exception is in documents that have mixed content (runs of text mixed with inline elements), in which it's altogether pernicious to strip space. But your code doesn't appear to work over this sort of stuff (and won't).
At 05:05 PM 5/7/2008, you wrote:
Re: [xsl] Newbie wants comments too . . .
Subject: Re: [xsl] Newbie wants comments too . . . From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Wed, 07 May 2008 17:12:35 -0400 |
Frank,
ps -- any particular reason why you have xsl:preserve-space="*"? In data-centric input this is pretty unusual. It's especially unusual to ask whitespace-only text to be preserved everywhere, as you have it. It's more common than not for such whitespace to be entirely cosmetic, and thus mungeable, so the results of stripping it instead and letting the serializer indent it again (as in my revised code) is often considered cleaner and preferable.
The glaring exception is in documents that have mixed content (runs of text mixed with inline elements), in which it's altogether pernicious to strip space. But your code doesn't appear to work over this sort of stuff (and won't).
Cheers, Wendell
At 05:05 PM 5/7/2008, you wrote:
Frank,
Comments are ordinarily not copied because they are matched by a built-in template that discards them:
<xsl:template match="comment()"/>
To override this, simply write a template of your own that copies them:
<xsl:template match="comment()"> <xsl:copy-of select="."/> </xsl:template>
You could also tighten your code as follows:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/> <!-- indent 'yes' asks your serializer to indent so you don't have to -->
<xsl:preserve-space elements="*"/>
<xsl:template match="AsiaInfoDb"> <aitags> <xsl:apply-templates/> </aitags> </xsl:template>
<xsl:template match="AsiaInfoDb/*"> <aitag id="{name()}"> <xsl:copy-of select="@*"/> <xsl:value-of select="."/> </aitag> </xsl:template>
</xsl:stylesheet>
This isn't much different (and it should create the same output), but you'll find this approach scales better to more complex sorts of problems.
Enjoy -- Wendell
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Newbie wants comments too, Wendell Piez | Thread | Re: [xsl] Newbie wants comments too, Frank Merrow |
Re: [xsl] Newbie wants comments too, Wendell Piez | Date | Re: [xsl] output to iso-8859-1 of n, David Carlisle |
Month |
Keywords