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