[xsl] xslt 2 when test multiple conditions

Subject: [xsl] xslt 2 when test multiple conditions
From: "LEGAULT, PHILLIP plegault@xxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 18 Aug 2023 20:08:13 -0000
I have an xml file with answers to multiple questionnaires. When one of the
questionnaires <Safety_MedicalAE Questionnaire> has answered the same question
different from on of the other questionnaires I need the Safety_MedicalAE
Questionnaire response without the others.

Example

<records xsi:type="sf:Response_GCC__c">
         <sf:Id xsi:nil="true"/>
         <sf:Question_GCC__c>Why was the patient using the
product?</sf:Question_GCC__c>
         <sf:QuestionnaireQuestion_GCC__r
xsi:type="sf:QuestionnaireQuestion_GCC__c">
            <sf:Id xsi:nil="true"/>
            <sf:DSMapping_GCC__c>Indication</sf:DSMapping_GCC__c>
            <sf:Questionnaire_GCC__r xsi:type="sf:Questionnaire_GCC__c">
               <sf:Id xsi:nil="true"/>
               <sf:DownstreamSystemName_GCC__c>Safety</sf:DownstreamSystemNam
e_GCC__c>
               <sf:QuestionnaireIdentifier_GCC__c>Safety_MedicalAE
Questionnaire</sf:QuestionnaireIdentifier_GCC__c>
            </sf:Questionnaire_GCC__r>
         </sf:QuestionnaireQuestion_GCC__r>
         <sf:Response_GCC__c>rash</sf:Response_GCC__c>
      </records>

      <records xsi:type="sf:Response_GCC__c">
         <sf:Id xsi:nil="true"/>
         <sf:Question_GCC__c>Why was the patient using the
product?</sf:Question_GCC__c>
         <sf:QuestionnaireQuestion_GCC__r
xsi:type="sf:QuestionnaireQuestion_GCC__c">
            <sf:Id xsi:nil="true"/>
            <sf:DSMapping_GCC__c>Indication</sf:DSMapping_GCC__c>
            <sf:Questionnaire_GCC__r xsi:type="sf:Questionnaire_GCC__c">
               <sf:Id xsi:nil="true"/>
               <sf:DownstreamSystemName_GCC__c>Safety</sf:DownstreamSystemNam
e_GCC__c>
               <sf:QuestionnaireIdentifier_GCC__c>Safety_Medical_FULL
Questionnaire</sf:QuestionnaireIdentifier_GCC__c>
            </sf:Questionnaire_GCC__r>
         </sf:QuestionnaireQuestion_GCC__r>
         <sf:Response_GCC__c>cough</sf:Response_GCC__c>
      </records>


I have tried

<xsl:choose>
<xsl:when
test="/records/sf:Case_Responses_GCC__r/records/sf:QuestionnaireQuestion_GCC_
_r/sf:Questionnaire_GCC__r[sf:QuestionnaireIdentifier_GCC__c='Safety_MedicalAE
Questionnaire']/../sf:DSMapping_GCC__c='Indication'">
  <xsl:value-of
select="/records/sf:Case_Responses_GCC__r/records/sf:QuestionnaireQuestion_GC
C__r[sf:DSMapping_GCC__c='Indication']/../sf:Response_GCC__c"/>
</xsl:when>
    <xsl:otherwise>
      <xsl:value-of
select="/records/sf:Case_Responses_GCC__r/records/sf:QuestionnaireQuestion_GC
C__r[sf:DSMapping_GCC__c='Indication']/../sf:Response_GCC__c"/>
    </xsl:otherwise>
</xsl:choose>


However, I get both responses rash cough

Thanks in advance for your help.


Phil Legault
RDx Platform Lead

Current Thread