This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: XSL problem for newbie!
- To: xsl-list at mulberrytech dot com
- Subject: Re: XSL problem for newbie!
- From: Wendell Piez <wapiez at mulberrytech dot com>
- Date: Wed, 10 May 2000 17:21:55 +0100
- Reply-To: xsl-list at mulberrytech dot com
Hi Mark,
At 04:18 PM 5/10/00 +0100, you wrote:
>so firstly, can someone give me a minimal script that will take a file of
>XML and replicate it unchanged as output. i guess you need a template to
>override each default rule for how each input element is handled (including
>comments, processing instructions etc.)
Not quite: you can override all default rules together. An identity
transform is given in the XSL spec, section 7.5:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
>secondly, can you modify this to show a test for the presence of a named
>child element which inserts it if it is not present
Rather than modify it, supplement it with a template specifically for that
element where you want the test and possible new child:
<xsl:template match="yourelement">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:if test="not(child)">
<child><!-- whatever you like --></child>
</xsl:if>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
>and finally, can you modify this to show testing the presence of an
>attribute and inserting a default if it is not present
<xsl:template match="yourelement">
<xsl:copy>
<xsl:if test="not(@yourattribute)">
<xsl:attribute name="yourattribute">
<xsl:text>yourdefaultvalue</xsl:text>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
Note that I haven't tested this stuff, but I think it'll do what you want.
Cheers,
Wendell
======================================================================
Wendell Piez mailto:wapiez@mulberrytech.com
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
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list