[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Variable value change based on condition

Subject: Re: Variable value change based on condition
From: sudheshna iyer <sudheshnaiyer@xxxxxxxxx>
Date: Tue, 5 Oct 2010 05:59:33 -0700 (PDT)
Re:  Variable value change based on condition
Thank you all, for the reply.

This is my requirement:
====
I have 3 input
variables (inputVar1, inputVar2, inputVar3) and 3 output variables
(outputTempVar1, outputVar1, outputVar2)

I need to copy these input variables
to output variables based on some condition.

Conditions:
1. If all the 3
input variables are present (element present with no blanks), map inputVar1 ->
outputTempVar1, map inputVar2 -> outputVar1 and map inputVar3 -> outputVar2.
2. If there are only two input variables present (inputVar1, inputVar2), map
inputVar1 -> outputVar1 and map inputVar2 -> outputVar2.
3. If there is only
one input variable is present (inputVar1), map inputVar1 -> outputVar1.   

So
output variables get their values based on input variable's presence (element
being present and not empty). I am trying to transform one xml to another. So
input variables come from input xml.
====

Can this be achieved in xslt 1.0?
--- On Tue, 10/5/10, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote:

> From:
Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
> Subject: Re:  Variable value
change based on condition
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Date:
Tuesday, October 5, 2010, 7:33 AM
> Hi Sudheshna,
>    Here's a little
explanation please.
> 
> On Tue, Oct 5, 2010 at 3:09 PM, sudheshna iyer
<sudheshnaiyer@xxxxxxxxx>
> wrote:
> > I need a variable whose value can be
changed based on
> the if conditions.
> 
> First of all, it's important to
know that variables in XSLT
> are
> immutable (i.e their values cannot change
once a value is
> bound
> initially to an XSLT variable). [1]
> 
> I believe
XSLT had these important design goals (like [1]),
> with the
> objective to
prohibit side effects for computations in an
> XSLT
> environment, and not
having fixed ordering of computing
> XSLT
> instructions. These are an
essential characteristics of
> functional
> programming paradigm. Mutable
variables produce side
> effects, which is
> not desirable in XSLT or for that
matter in an functional
> programming
> paradigm.
> 
> As David wrote, XSLT
variables have a lexical scope. For
> e.g please
> consider this example:
> 
>
<xsl:variable name="x" value="'hello'"
> />   [2]
> <xsl:if test="true()">
>  
  <xsl:variable name="x" value="'there'"
> />  [3]
> </xsl:if>
> 
> Here
variable [2] is not same as [3]. These are different
> variables,
> but their
names are same ("x") -- this is a classic fallacy
> when we
> look at this
concept from procedural programming point-of
> view. The
> scope of variable
[3] is within the enclosing "if" only.
> The scope of
> variable [2] is for
all XSLT instructions, which are
> following sibling
> to "if" instruction
(i.e for all following siblings after
> /xsl:if>),
> and for any-of XSLT
instruction between [2] and the
> starting tag of
> xsl:if (i.e <xsl:if ...)
>
> > I have 3 input variables (inputVar1, inputVar2,
> inputVar3) and 3 output
variables (outputTempVar1,
> outputVar1, outputVar2)
> >
> > I need to copy
these input variables to output
> variables based on some condition.
> >
> >
Conditions:
> > If all the 3 input variables are present, map
> inputVar1 ->
outputTempVar1, map inputVar2 ->
> outputVar1 and map inputVar3 -> outputVar2.
> 
> you say that, variable is present if it's not empty (does
> this mean,
>
it's value is a zero length string, but that's defined in
> scope?)
> 
> > So
can I change the value of the output variable? How
> can I achieve the above
in xslt 1.0.
> 
> No problems, but had you been using XPath 2.0, writing such
> a logic
> would have been quite simpler :)
> 
> I think, you may explain the
problem a little more, for us
> to think
> about the most appropriate
solution.
> 
> And I hope, this helps.
> 
> 
> 
> -- 
> Regards,
> Mukul
Gandhi
> 
>
--~------------------------------------------------------------------
>
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> To
unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
> or e-mail:
<mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>
> --~--

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.