[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Get the first Array element


Subject: Re: [xsl] Get the first Array element
From: Michel Hendriksen <michel.hendriksen@xxxxx>
Date: Fri, 11 May 2012 12:23:40 +0200

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 &gt;= 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: [xsl] 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: [xsl] 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: [xsl] 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: [xsl] 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: [xsl] 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: [xsl] 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: [xsl] 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: [xsl] 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: [xsl] 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.


Current Thread
Keywords
xml