|
Subject: Re: [xsl] xslt 2 when test multiple conditions From: "Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 19 Aug 2023 15:28:10 -0000 |
Hi Phil,
The <xsl:value-of> inside your bwhenb conditions do not consider whatever
test might have preceded them; they are simply evaluated as-is when their
bwhenb branch is followed.
In your case, I suggest separating the selection of the record and the
acquisition of the data from that record:
<!-- get all records, with most preferred response first -->
<xsl:variable name="sorted-records" as="element(records)*">
<xsl:perform-sort select="//records">
<xsl:sort
select="contains(QuestionnaireQuestion/Questionnaire/QuestionnaireIdentifier,
'Safety_MedicalAE')" order="descending"/>
</xsl:perform-sort>
</xsl:variable>
<!-- return first response (or empty value if no match) -->
<xsl:value-of select="$sorted-records[1]/Response"/>
The sort is a descending Boolean sort, which puts the true() evaluations
first.
Also, you are using <records> for the root element and for your data records.
In my testing, I changed the root element to <root>.
Depending on the granularity of your full data, you might change obtain and
sort on a different element than <records>, adjusting the tests accordingly.
* Chris
From: LEGAULT, PHILLIP plegault@xxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Saturday, August 19, 2023 10:41 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] xslt 2 when test multiple conditions
Simple as I can get it
<?xml version="1.0" encoding="UTF-8"?>
<records>
<Case_Responses>
<records>
<QuestionnaireQuestion>
<DSMapping>Indication</DSMapping_GCC__c>
<Questionnaire>
<QuestionnaireIdentifier>Safety_MedicalAE
Questionnaire</QuestionnaireIdentifier>
</Questionnaire_GCC__r>
</QuestionnaireQuestion>
<Response>rash</Response>
</records>
<records>
<QuestionnaireQuestion>
<DSMapping>Indication</DSMapping>
<Questionnaire>
<QuestionnaireIdentifier>Safety_Medical_FULL
Questionnaire</QuestionnaireIdentifier>
</Questionnaire>
</QuestionnaireQuestion>
<Response>cough</Response>
</records>
</Case_Responses>
</records>
expected output: rash
From: Chris Papademetrious chrispitude@xxxxxxxxx<mailto:chrispitude@xxxxxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx
rytech.com>>
Sent: Saturday, August 19, 2023 9:36 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: [EXTERNAL] Re: [xsl] xslt 2 when test multiple conditions
Hi Phil,
What is the simplest input XML and expected output XML that describes your
question, without using domain-specific elements (or at least not long
complicated ones)?
- Chris
EasyUnsubscribe<https://urldefense.com/v3/__http:/lists.mulberrytech.com/unsu
b/xsl-list/3514465__;!!A4F2R9G_pg!aWhAfS8HN45QUHeMMEL6jbvyohvELfGzTXI8zdboJOQ
NOJC7Jk9ZYH1MNZqomu5u8fNNa5w7MFOxsEeUVmU2V_rZ-W1INpMdMiStI9_ZC3YSn6SKKyHo$>
(by email)
XSL-List info and
archive<https://urldefense.com/v3/__http:/www.mulberrytech.com/xsl/xsl-list__
;!!A4F2R9G_pg!aWhAfS8HN45QUHeMMEL6jbvyohvELfGzTXI8zdboJOQNOJC7Jk9ZYH1MNZqomu5
u8fNNa5w7MFOxsEeUVmU2V_rZ-W1INpMdMiStI9_ZC3YSnxHNCJE1$>
EasyUnsubscribe<https://urldefense.com/v3/__http:/lists.mulberrytech.com/unsu
b/xsl-list/3380743__;!!A4F2R9G_pg!aWhAfS8HN45QUHeMMEL6jbvyohvELfGzTXI8zdboJOQ
NOJC7Jk9ZYH1MNZqomu5u8fNNa5w7MFOxsEeUVmU2V_rZ-W1INpMdMiStI9_ZC3YSn2J0KWQM$>
(by email<>)
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] xslt 2 when test multiple, LEGAULT, PHILLIP ple | Thread | Re: [xsl] xslt 2 when test multiple, David Carlisle d.p.c |
| Re: [xsl] xslt 2 when test multiple, LEGAULT, PHILLIP ple | Date | Re: [xsl] xslt 2 when test multiple, David Carlisle d.p.c |
| Month |