Subject: RE: [xsl] simple query regarding the count function From: "Michael Kay" <mhk@xxxxxxxxx> Date: Wed, 8 Oct 2003 22:11:57 +0100 |
I think what you are looking for is: xsl:value-ofselect=" count(/header/policy/requirement[ldor_requirement_ifa='Y' and (ldor_requirement_code='A21C' or ldor_requirement_code='A50A' or ldor_requirement_code='OTHR')] )"/> You can't use "and" and "or" to combine node-sets, only to combine booleans. Michael Kay > > > > Apologies if this has been asked before, but I am struggling > a bit with what I think should be a fairly straight forward > piece of logic. > > In xsl speak I want to count a number of elements based on 2 > different children having conditions that must be met to take > part in the count. > > According to my actual business example what I want to do is > count the number of requirement elements that have a child > element of ldor_requirement_ifa set to Y and tanother child > element that has to have a requirement code of A21C, A50A or > OTHR. The result from the count can only ever be 0,1,2,3 > > I thought this would be quite simple to acheive but I keep > running into an issue when the query within the result set > returns a boolean result which then returns an error. If I > remove everything apart from one test, the count will > evaluate the condition as expected but obviously this is not > what I require. I've gotten close by adding count conditions > for each requirement code but I can't integrate the test on > the ifa node into this condition. > > If anyone is helpful enough to answer my query I would be > most grateful. Some things that you have to aware of, I'm not > using templates, apart from one match condition of root at > the beginning of the template. So any suggestion involving > templates is not going to work unless I drastically rewrite > the stylesheet which I don't want to do. I'm also not able to > change the structure of the xml. > > Thanks, Simon Demler > > > Code snippets below: > > > XSL query > > xsl:value-ofselect=" > count(/header/policy/requirement[ldor_requirement_ifa='Y'] and > > /header/policy/requirement[ldor_requirement_code='A21C'] or > > /header/policy/requirement[ldor_requirement_code='A50A'] or > > /header/policy/requirement[ldor_requirement_code='OTHR'] )"/> > > this works but doesn't include the ifa requirement condition I need. > > xsl:value-of > select="count(/header/policy/requirement[ldor_requirement_code > ='A21C']) + > > count(/header/policy/requirement[ldor_requirement_code='A50A']) + > > count(/header/policy/requirement[ldor_requirement_code='OTHR'])"/> > > > Snippet of xml below > > <requirement> > <row_id>400020090040001006</row_id> > <parent_id>400020090040001005</parent_id> > <row_type>LDOR</row_type> > <ldor_activity_policy_id>40001005</ > ldor_activity_policy_id> > <ldor_requirement_category>NB </ > ldor_requirement_category> > <ldor_requirement_ifa>Y</ldor_requirement_ifa> > <ldor_short_description>Med exam > & rest</ ldor_short_description> > <ldor_long_description>Please arrange > for the life insured to undergo a specialist medical > examination and resting E.C.G.</ ldor_long_description> > <ldor_overridden_long_desc>Please > arrange for the life insured to undergo a specialist medical > examination and resting E.C.G. </ldor_overridden_long_desc> > <ldor_status>OPEN</ldor_status> > <ldor_raised_date>2003-09-16 > 14:41:22.15</ ldor_raised_date> > <ldor_completed_date/> > <ldor_last_updated_by>PHainesTestUser</ > ldor_last_updated_by> > <ldor_carb_id/> > > <ldor_requirement_code>ADDI</ldor_requirement_code> > </requirement> > <requirement> > <row_id>400020090040001008</row_id> > <parent_id>400020090040001005</parent_id> > <row_type>LDOR</row_type> > <ldor_activity_policy_id>40001005</ > ldor_activity_policy_id> > <ldor_requirement_category>NB </ > ldor_requirement_category> > <ldor_requirement_ifa>N</ldor_requirement_ifa> > <ldor_short_description>36(k) - > Details</ ldor_short_description> > <ldor_long_description>Answer to > serious illness question 36k not supplied</ldor_long_description> > <ldor_overridden_long_desc>Answer to > serious illness question 36k not supplied</ldor_overridden_long_desc> > <ldor_status>OPEN</ldor_status> > <ldor_raised_date>2003-09-16 > 14:40:56.113</ ldor_raised_date> > <ldor_completed_date/> > <ldor_last_updated_by>PHainesTestUser</ > ldor_last_updated_by> > <ldor_carb_id/> > > <ldor_requirement_code>A21C</ldor_requirement_code> > </requirement> > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] simple query regarding the co, Simon Demler | Thread | [xsl] Regarding xsl transformation , Chadha, Devesh |
RE: [xsl] using node-set() extensio, Michael Kay | Date | RE: [xsl] Regarding xsl transformat, Michael Kay |
Month |