Re: XSL problem for newbie!

Subject: Re: XSL problem for newbie!
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 10 May 2000 17:21:55 +0100
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@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
======================================================================


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread
  • XSL problem for newbie!
    • MarkH - Wed, 10 May 2000 16:18:46 +0100
      • Wendell Piez - Wed, 10 May 2000 17:21:55 +0100 <=
      • <Possible follow-ups>
      • MarkH - Thu, 11 May 2000 11:12:15 +0100