[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Get the first Array element
First test is probably wrong, so it will go into otherwise part. Maybe have a test for lower then zero (as for >0) and have the otherwise part catch the rest and insert 000000000000000 On Fri, May 11, 2012 at 12:00 PM, henry human <henry_human@xxxxxxxx> wrote: > Hello > In the statemt bellow which is calling in a xsl-for each loop > I get at the secound TaxTotal for the lment Amount the value NaN! > I think the statement cac:TaxTotal[child::cbc:Amount][1]/cbc:Amount assumes that all Taxtotals have an Amount element. > > ?? > Resul: > <amount>+0000000000044</amount> > <amount>NaN</amount> > <amount>+0000000000010</amount> > XML: > <elements> > <TaxTotal> > <Amount>44.00</Amount> > </TaxSubtotal> > </TaxTotal> > > //this is the secound Taxtotal > <TaxTotal> > > <otherAmount>0.0</otherAmount> > </TaxTotal> > > <TaxTotal> > <Amount>10.00</Amount> > </TaxSubtotal> > </TaxTotal> > ...... > </elements> > -------- > <xsl:choose> > <xsl:when test="(cac:TaxTotal[child::cbc:Amount][1]/cbc:Amount) = '' ">00000000000000</xsl:when> > <xsl:otherwise> > <xsl:choose> > <xsl:when test="cac:TaxTotal[child::cbc:Amount][1]/cbc:Amount >= 0"> > <xsl:value-of select="format-number(floor(cac:TaxTotal[child::cbc:Amount][1]/cbc:Amount),'+ 0000000000000;-0000000000000') "/> > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="format-number(ceiling(number(cac:TaxTotal[child::cbc:Amount][1]/cbc:A mount) ),'+0000000000000;-0000000000000') "/> > </xsl:otherwise> > </xsl:choose> > </xsl:otherwise> > </xsl:choose> > > ----- Urspr|ngliche Message ----- > Von: henry human <henry_human@xxxxxxxx> > An: "xsl-list@xxxxxxxxxxxxxxxxxxxxxx" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > CC: > Gesendet: 21:39 Donnerstag, 10.Mai 2012 > Betreff: Re: Get the first Array element > > Thank you Michele, that is it! ! > Best regards > Henry > > ----- Urspr|ngliche Message ----- > Von: Michele R Combs <mrrothen@xxxxxxx> > An: "'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > CC: > Gesendet: 21:07 Donnerstag, 10.Mai 2012 > Betreff: RE: Get the first Array element > > Argh. Again with the bad punctuation, here it is corrected: > > select="TaxTotal[child::Amount][1]/Amount" > > Sorry!! > > -----Original Message----- > From: Michele R Combs [mailto:mrrothen@xxxxxxx] > Sent: Thursday, May 10, 2012 3:07 PM > To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx' > Subject: RE: Get the first Array element > > Ah. Try this: > > select="TaxTotal[child::Amount[1]/Amount" > > -----Original Message----- > From: henry human [mailto:henry_human@xxxxxxxx] > Sent: Thursday, May 10, 2012 3:06 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: Get the first Array element > > Thanks, it seems that still is somethin wrong in your statement. I get now the correct Taxtotal (the first which has an element Amount) but it is the WHOLE Taxtotal and not only the Amount! > Even if try this I get still the whole taxtotal: > select="TaxTotal[child::Amount[1]][1]" > > > > ----- Urspr|ngliche Message ----- > Von: Michele R Combs <mrrothen@xxxxxxx> > An: "'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > CC: > Gesendet: 19:28 Donnerstag, 10.Mai 2012 > Betreff: RE: Get the first Array element > > Sorry, extra closing quotes there: > > select="TaxTotal[child::Amount][1]" > > Michele > > -----Original Message----- > From: Michele R Combs [mailto:mrrothen@xxxxxxx] > Sent: Thursday, May 10, 2012 1:28 PM > To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx' > Subject: RE: Get the first Array element > > In your code example there is only ONE occurrence of TaxTotal/Amount -- in that case, select="TaxTotal/Amount" will work. > > If there are multiple TaxTotal/Amounts and you only want the first one, then I think select="TaxTotal[child::Amount][1]"" would do it. > > Michele > > -----Original Message----- > From: henry human [mailto:henry_human@xxxxxxxx] > Sent: Thursday, May 10, 2012 12:18 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: Get the first Array element > > Sorry it was a mistake in the posting: > Correction: > I will get the FIRST Taxtotal element which has the Amount element I tried it with <xsl-value-of select="TaxTotal[1]/Amount"/> But it does not work as expected because I get the other Taxtotal (the first one) which has not the element 'Amount' > Here is my XML data: > > <elements> > .... > <TaxTotal> > <otherAmount>22.00</otherAmount> > </TaxTotal> > ....... > <TaxTotal> > <otherAmount>90.00</otherAmount> > </TaxTotal> > <TaxTotal> > ..... > <Amount>44.00</Amount> > </TaxSubtotal> > </TaxTotal> > <TaxTotal> > ..... > <Amount>10.00</Amount> > </TaxSubtotal> > </TaxTotal> > ...... > </elements> > > > > I hope i am now more cleare > ?? > > > > ----- Urspr|ngliche Message ----- > Von: henry human <henry_human@xxxxxxxx> > An: "xsl-list@xxxxxxxxxxxxxxxxxxxxxx" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > CC: > Gesendet: 17:59 Donnerstag, 10.Mai 2012 > Betreff: Re: Get the first Array element > > Sorry it was a mistake in the posting: > Correction: > I will get the FIRST Taxtotal element which has the Amount element I tried it with <xsl-value-of select="TaxTotal[1]/RoundingAmount"/> > But it does not work as expected because I get the other Taxtotal (the first one) which has not the element 'Amount' > Here is my XML data: > > <elements> > .... > <TaxTotal> > <otherAmount>22.00</otherAmount> > </TaxTotal> > ....... > <TaxTotal> > <otherAmount>90.00</otherAmount> > </TaxTotal> > <TaxTotal> > ..... > <Amount>44.00</Amount> > </TaxSubtotal> > </TaxTotal> > <TaxTotal> > ..... > <Amount>10.00</Amount> > </TaxSubtotal> > </TaxTotal> > ...... > </elements> > > > > I hope i am now more cleare > ?? > > > ----- Urspr|ngliche Message ----- > Von: Dimitre Novatchev <dnovatchev@xxxxxxxxx> > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > CC: > Gesendet: 17:49 Donnerstag, 10.Mai 2012 > Betreff: Re: Get the first Array element > > Unless you clearly define the problem, don't expect any useful response -- we are not supernaturals and only have limited guessing power. > > Cheers, > Dimitre > > On Thu, May 10, 2012 at 7:11 AM, henry human <henry_human@xxxxxxxx> wrote: >> Hello >> <elements> >> .... >> <TaxTotal> >> <otherAmount>22.00</otherAmount> >> </TaxTotal> >> ....... >> <TaxTotal> >> <otherAmount>90.00</otherAmount> >> </TaxTotal> >> <TaxTotal> >> ..... >> <Amount>44.00</Amount> >> </TaxSubtotal> >> </TaxTotal> >> <TaxTotal> >> ..... >> <Amount>10.00</Amount> >> </TaxSubtotal> >> </TaxTotal> >> ...... >> </elements> >> --------------------- >> Ever I will get the FIRST Taxtotal because this has the Amount I tried >> :cac:TaxTotal[1]/cbc:RoundingAmount >> Butr It is wrong! >> ?? >> > > > > -- > Cheers, > Dimitre Novatchev > --------------------------------------- > Truly great madness cannot be achieved without significant intelligence. > --------------------------------------- > To invent, you need a good imagination and a pile of junk > ------------------------------------- > Never fight an inanimate object > ------------------------------------- > To avoid situations in which you might make mistakes may be the biggest mistake of all > ------------------------------------ > Quality means doing it right when no one is looking. > ------------------------------------- > You've achieved success in your field when you don't know whether what you're doing is work or play > ------------------------------------- > Facts do not cease to exist because they are ignored. > ------------------------------------- > I finally figured out the only reason to be alive is to enjoy it.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|