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

Re: Modify Value of a Parameter Globally Within a Tem

Subject: Re: Modify Value of a Parameter Globally Within a Template
From: Lisa Jiang <ljiang@xxxxxxxxx>
Date: Tue, 13 Nov 2012 13:08:08 -0500
Re:  Modify Value of a Parameter Globally Within a  Tem
That approach worked perfectly. Thank you for all the help!

On Mon, Nov 12, 2012 at 1:45 PM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>
> On 12/11/2012 18:20, Lisa Jiang wrote:
>>
>> Hi Michael,
>>
>> Yes so the input is information that I get from an HTTP request. This
>> information consists of a descriptor that tells whether our query for
>> the website was a match for the information on the website. It also
>> consists of information from the website. I then need to process the
>> information based on the descriptor. However, sometimes the descriptor
>> is incorrect. So I first want to call another template to check
>> whether or not the descriptor is correct based on the information and
>> change it if it is incorrect, since it affects processing later on. At
>> output, I generate a comment based on the descriptor as well as the
>> website information post-processing.
>
>
> OK, great.
>
> The functional approach to this is a pipeline.
>
> First compute the "corrected descriptor" in a variable. If the descriptor is
> already correct, this is trivially the same as the input descriptor. If the
> input descriptor is incorrect, then the correct descriptor is some
> transformation of the input descriptor.
>
> Then do some processing using the corrected descriptor as input.
>
> Schematically:
>
> <xsl:variable name="correctedDescriptor"
>   select="if (f:descriptorIsCorrect($descriptor)) then $descriptor else
> f:applyCorrection($descriptor)"/>
>
> <xsl:template match="/">
>   <xsl:sequence select="f:doTheWork(., $correctedDescriptor)"/>
> </xsl:template>
>
> I've written this using functions rather than templates for brevity but the
> logic is the same either way.
>
> Michael Kay
> Saxonica
>
>
>>
>> So for example:
>> Our query
>> Brand: Haagen Daaz
>> Flavor: Chocolate
>> Price: $5.99
>>
>> Website return:
>> Descriptor: Found
>> Brand: Haagen Dazs
>> Price: $5.99
>>
>> The descriptor should say "Similar Found." So then I would check
>> whether or not the brand names are exactly the same, and, if not, I
>> would change the descriptor.
>>
>> So then instead of outputting (incorrectly):
>> Descriptor: Found
>> Comment: Exact match
>> Brand: Haagen Daaz
>> Price: $5.99
>>
>> The correct output would be:
>> Descriptor: Similar Found
>> Comment: Error in brand name
>> Brand: Haagen Dazs
>> Price: $5.99
>>
>> Thanks!
>> Lisa
>>
>>
>>> -------- Original Message --------
>>> Subject: Re:  Modify Value of a Parameter Globally Within a Template
>>> Date: Mon, 12 Nov 2012 17:21:55 +0000
>>> From: Michael Kay <mike@xxxxxxxxxxxx>
>>> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>>> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>>>
>>>
>>> On 12/11/2012 17:07, Lisa Jiang wrote:
>>>>
>>>> Dear All,
>>>>
>>>> Is there a specific way to change the value of a parameter within a
>>>> call to another template and then use the resulting value for tests in
>>>> the original template? Or just change the value of a parameter within
>>>> a template that then reflects globally? I've included some simple,
>>>> example code on what I would like to do.
>>>>
>>>>
>>> No, you can't do it this way: this isn't the way functional languages
>>> work.
>>>
>>> If you can step up a couple of levels and describe the problem (that is,
>>> the input and output of the transformation and their relationship to
>>> each other) then we can try and find the right approach for you.
>>>
>>> Michael Kay
>>> Saxonica

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.