Subject: [xsl] Collect all the truncated fields in an array From: sudheshna iyer <sudheshnaiyer@xxxxxxxxx> Date: Tue, 5 Oct 2010 16:40:37 -0700 (PDT) |
Team, Thank you for helping. It worked. Now I want to extend the functionality. I changed the subject appropriately.. XSL: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="InputXml"> <xsl:variable name="MAX_InputXmlValue1">1</xsl:variable> <xsl:variable name="MAX_InputXmlValue2">2</xsl:variable> <xsl:variable name="MAX_InputXmlValue3">3</xsl:variable> <OutputXml> <xsl:choose> <xsl:when test="InputXmlValue3='' and InputXmlValue2=''"> <outputTempVar1></outputTempVar1> <outputVar1><xsl:value-of select="substring(InputXmlValue1,1,$MAX_InputXmlValue1)"/></outputVar1> <outputVar2></outputVar2> </xsl:when> <xsl:when test="InputXmlValue3=''"> <outputTempVar1></outputTempVar1> <outputVar1><xsl:value-of select="substring(InputXmlValue1,1,$MAX_InputXmlValue1)"/></outputVar1> <outputVar2><xsl:value-of select="substring(InputXmlValue2,1,$MAX_InputXmlValue2)"/></outputVar2> </xsl:when> <xsl:otherwise> <outputTempVar1><xsl:value-of select="substring($InputXmlValue1,1,$MAX_InputXmlValue1)InputXmlValue1"/></outputTempVar1> <outputVar1><xsl:value-of select="substring(InputXmlValue2,1,$MAX_InputXmlValue2)"/></outputVar1> <outputVar2><xsl:value-of select="substring(InputXmlValue3,1,$MAX_InputXmlValue3)"/></outputVar2> </xsl:otherwise> </xsl:choose> </OutputXml> </xsl:template> </xsl:stylesheet> In the above xsl, I am taking 3 input values and using the below logic, mapped to 3 output values. During the mapping, I introduced truncation logic. Now I need to collect all the input values that got truncated at the end of the program in the form of string array. Ultimate goal is that I need to frame an email collecting all truncated values. Conditions: 1. If all the 3 input variables are present (element present with no blanks), map /InputXmlValue1 -> outputTempVar1, map /InputXmlValue2 -> outputVar1 and map /InputXmlValue3 -> outputVar2. 2. If there are only two input variables present (/InputXmlValue1, /InputXmlValue2), map /InputXmlValue1 -> outputVar1 and map /InputXmlValue2 -> outputVar2. 3. If there is only one input variable is present (//InputXmlValue1), map /InputXmlValue1 -> outputVar1. eg: If I send the following input xml INPUT: <?xml version="1.0" encoding="UTF-8"?> <InputXml> <InputXmlValue1>12</InputXmlValue1> <InputXmlValue2>345</InputXmlValue2> <InputXmlValue3>678</InputXmlValue3> </InputXml> Based on the above xsl, output will be OUTPUT: <?xml version="1.0" encoding="UTF-8"?> <OutputXml> <outputTempVar1>1</outputTempVar1> ==> Truncated. "12" got truncated to "1" <outputVar1>34</outputVar1> ==> Truncated. "345" got truncated to "34" <outputVar2>678</outputVar2> </OutputXml> What I want is: <?xml version="1.0" encoding="UTF-8"?> <OutputXml> <outputTempVar1>1</outputTempVar1> ==> Truncated. "12" got truncated to "1" <outputVar1>34</outputVar1> ==> Truncated. "345" got truncated to "34" <outputVar2>678</outputVar2> <TruncatedValues>'[InputXmlValue1: Initial[12], Truncated[1]],[InputXmlValue2: Initial[345], Truncated[34]]</TruncatedValues> </OutputXml> Is this possible? ----- Original Message ---- From: sudheshna iyer <sudheshnaiyer@xxxxxxxxx> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Sent: Tue, October 5, 2010 11:18:45 AM Subject: Re: [xsl] Variable value change based on condition Thank you all. Let me try this. --- On Tue, 10/5/10, David Carlisle <davidc@xxxxxxxxx> wrote: > From: David Carlisle <davidc@xxxxxxxxx> > Subject: Re: [xsl] Variable value change based on condition > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Cc: "sudheshna iyer" <sudheshnaiyer@xxxxxxxxx> > Date: Tuesday, October 5, 2010, 10:51 AM > On 05/10/2010 15:38, sudheshna iyer > wrote: > > Team, thank you for your patience. I complete > understand that converting java code to xslt doesn't make > much sense. But tech change required this, which I don't > have control on. Since I came from java background, it is > becoming harder for me.. > > so there were no variables at all, you meant "elements" I > doubt anyone would have guessed that. > > > <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:template match="InputXml"> > <OutputXml> > <xsl:choose> > <xsl:when test="InputXmlValue3='' and > InputXmlValue2=''"> > > <outputTempVar1></outputTempVar1> > <outputVar1><xsl:value-of > select="InputXmlValue1"/></outputVar1> > <outputVar2></outputVar2> > </xsl:when> > <xsl:when test="InputXmlValue3=''"> > > <outputTempVar1></outputTempVar1> > <outputVar1><xsl:value-of > select="InputXmlValue1"/></outputVar1> > <outputVar2><xsl:value-of > select="InputXmlValue2"/></outputVar2> > </xsl:when> > <xsl:otherwise> > <outputTempVar1><xsl:value-of > select="InputXmlValue1"/></outputTempVar1> > <outputVar1><xsl:value-of > select="InputXmlValue2"/></outputVar1> > <outputVar2><xsl:value-of > select="InputXmlValue3"/></outputVar2> > </xsl:otherwise> > </xsl:choose> > </OutputXml> > </xsl:template> > </xsl:stylesheet> > > > ________________________________________________________________________ > The Numerical Algorithms Group Ltd is a company registered > in England > and Wales with company number 1249803. The registered > office is: > Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United > Kingdom. > > This e-mail has been scanned for all viruses by Star. The > service is > powered by MessageLabs. > ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Variable value change bas, sudheshna iyer | Thread | Re: [xsl] Collect all the truncated, David Carlisle |
Re: [xsl] Efficient XSLT range look, Michael Kay | Date | Re: [xsl] Collect all the truncated, David Carlisle |
Month |