OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] Combining 2 XML into 1 XML via XSLT

[ Lists Home | Date Index | Thread Index ]

xsl-list is better than xml-dev for this sort of question.

The scope of a variable declaration is its containing element so in

<xsl:when test="@header_name != $header_name1">
<xsl:variable name="bFound">false</xsl:variable>

> I know that when the </xsl:choose> is reached that the variable looses its 
> scope.
the scope of $bfound is _just_ that xsl:when element ie it's out of
scope before the close of the choose element.

You don't want to conditionally define a variable, you want to define a
variable with a value that depends on a condition, so you have
xsl:variable and xsl:choose nested the wrong way:

<xsl:variable name="bFound">
<xsl:when test="@header_name = $header_name1">true</xsl:when>
<xsl:when test="@header_name != $header_name1">false</xsl:when>
<xsl:if test="$bFound='false'">...

that's the general case but here you don't need an xsl:choose at all as
you just want to set the variable to the boolean value directly

<xsl:variable name="bFound" select="@header_name = $header_name1"/>
<xsl:if test="$bFound">....

The rest of the code could be greatly simplified as well:
<xsl:variable name="header_name1"><xsl:value-of 

is a a verbose (and costly) version of
<xsl:variable name="header_name1" select="@header_name"/>

<xsl:attribute name="header_name"><xsl:value-of 

is a verbose version of

<header header_name="{@header_name}"/>


This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS