Subject: Re: [xsl] shortest way to write this xsl:if statement From: Wolfgang Laun <wolfgang.laun@xxxxxxxxx> Date: Fri, 15 Jun 2012 15:33:57 +0200 |
You don't need an if, the XPath should produce all nodes according to the condition. So, just the xsl:for-each! On 15/06/2012, henry human <henry_human@xxxxxxxx> wrote: > sorry, but the resul with the xpath- query is the same. The if statement is > ended after first finding of 'A' > > but there are at least for findings for B, C, D which should lead to > creation of the code bellow of th if-statement > ?? > > > > ----- Urspr|ngliche Message ----- > Von: Wolfgang Laun <wolfgang.laun@xxxxxxxxx> > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > CC: > Gesendet: 15:17 Freitag, 15.Juni 2012 > Betreff: Re: [xsl] shortest way to write this xsl:if statement > > Sorry, I meant to indicate that this should produce all the nodes that > should be processed by the loop, > > <xsl:for-each select="...."> > > On 15/06/2012, Wolfgang Laun <wolfgang.laun@xxxxxxxxx> wrote: >> You might need an XPath expression >> test="D4/G10/(X,Y,Z)[. = ('A','B','C','D')]" >> -W >> >> >> On 15/06/2012, henry human <henry_human@xxxxxxxx> wrote: >>> Now the problem is, the loop bellow of xsl:if is only one time created >>> but >>> I >>> have more findings in the if statement >>> regarding A, B, C, D (founds at least 4 times because D4/G100/6id = 'A' , >>> D4/G100/9id = 'B' , D4/G100/10id = 'C' , D4/G100/11id ='D') >>> => the code bellow of the xsl:if statemnt should be repeated as much as >>> if >>> statement find A, B, C, D,.. >>> >>> >>> >>> >>> ----- Urspr|ngliche Message ----- >>> Von: G. Ken Holman <gkholman@xxxxxxxxxxxxxxxxxxxx> >>> An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx; "xsl-list@xxxxxxxxxxxxxxxxxxxxxx" >>> <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> >>> CC: >>> Gesendet: 13:59 Freitag, 15.Juni 2012 >>> Betreff: Re: [xsl] shortest way to write this xsl:if statement >>> >>> >>> At 2012-06-15 12:54 +0100, henry human wrote: >>>> Hello >>>> The following if statement is too long if try it as in the sample >>>> bellow. >>>> How could be shorter? >>>> The if - logic to create a for-each loop: >>>> ---------------- >>>> xsl:if >>>> D4/G100/6id or D4/G100/9id or D4/G100/12id or D4/G100/6id15 or >>>> D4/G100/45id or D4/G100/22id, D4/G100/10id >>>> or D4/G100/19id is 'A' or 'B' or 'C', or 'D' or 'F' >>>> >>>> The Sample: >>>> <xsl:if test="D4/G100/6id = 'A' OR test="D4/G100/6id = 'B' OR >>>> test="D4/G100/6id = 'C' OR test="D4/G100/9id = 'A' OR test="D4/G100/9id >>>> = >>>> 'B' .....> >>>> >>>> <xsl:for-each select=" ......"> >>>> ... >>>> </xsl:for-each> >>>> >>>> </xsl:if> >>> >>> Element names cannot begin with digits, so I'm unclear how you are going >>> to >>> be testing elements such as <6id>. >>> >>> But, assuming you had elements D4/G100/X and D4/G100/Y and D4/G100/Z, you >>> could have in XSLT2 the following: >>> >>> <xsl:if test="D4/G100/(X,Y,Z) = ('A','B','C')"> >>> >>> ... which is equivalent to: >>> >>> D4/G100/X = 'A' or >>> D4/G100/X = 'B' or >>> D4/G100/X = 'C' or >>> D4/G100/Y = 'A' or >>> D4/G100/Y = 'B' or >>> D4/G100/Y = 'C' or >>> D4/G100/Z = 'A' or >>> D4/G100/Z = 'B' or >>> D4/G100/Z = 'C' >>> >>> When using the "=" comparison operator, either operand can be a set. The >>> processor walks through the comparisons in an arbitrary order eventually >>> testing each of the left operand with each of the right operand and stops >>> when it hits a true() result and returns true(). If you get a false() >>> returned, you know the processor has checked every possible combination >>> and >>> every combination has returned false(). >>> >>> I hope this helps. >>> >>> . . . . . . . . . . . Ken >>> >>> -- >>> Public XSLT, XSL-FO, UBL and code list classes in Europe -- Oct 2012 >>> Contact us for world-wide XML consulting and instructor-led training >>> Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm >>> Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ >>> G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx >>> Google+ profile: https://plus.google.com/116832879756988317389/about >>> Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] shortest way to write thi, Andrew Welch | Thread | Re: [xsl] shortest way to write thi, henry human |
Re: [xsl] shortest way to write thi, Andrew Welch | Date | Re: [xsl] shortest way to write thi, henry human |
Month |