Re: [xsl] apply-templates - format problem

Subject: Re: [xsl] apply-templates - format problem
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 2 Jan 2003 15:59:39 GMT

   And I know that @lang=$lang isn't allowed, but I don't know another way
   of processing my XML document depending on the language, without writing
   the whole template a second time for the one language, which is
   structured the same way as the other language section.

But if you do that you should get no output at all, as the processor
will (should) reject the stylesheet as it has a syntax error.
(I failed to spot the variable reference in my initial reply)

don't do this

        <xsl:template match="sect1[@lang=$lang and @id='news']">
		<xsl:for-each select="para">
	            <p><xsl:value-of select="."/></p>
		</xsl:for-each>
	</xsl:template>

do this

        <xsl:template match="sect1[@id='news']">
               <xsl:if test="@lang=$lang">
		<xsl:for-each select="para">
	            <p><xsl:value-of select="."/></p>
		</xsl:for-each>
               </xsl:if>
	</xsl:template>

or xsl:choose rather than xsl;if if you need to output something in the
case of other languages.

incidentally do you really want <xsl:value-of select="."/> ? judging by
your stylesheet your input looks suspiciously like docbook, in
which case para has mixed content and value-of isn't normally what you
want as it'll discard any markup.

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
________________________________________________________________________

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


Current Thread