[xsl] How to categorize elements having same name

Subject: [xsl] How to categorize elements having same name
From: Amit Agarwal <aagarwal123@xxxxxxxxx>
Date: Tue, 19 Jun 2012 15:01:10 +0530
Hi there ,

I'm using XSLT 1.0 version.

 My input xml looks like:


 Root>
  <ReportDrugSafetyReport>
   <DrugSafetyReportPatient>
    <DrugSafetyReportDrug>
     <MedicinalProductName>BPM Infra</MedicinalProductName>
     <ObtainedCountryCode>US</ObtainedCountryCode>
    </DrugSafetyReportDrug>

    <DrugSafetyReportDrug>
     <MedicinalProductName>Multistandard VCR</MedicinalProductName>
     <ObtainedCountryCode>UK</ObtainedCountryCode>
    </DrugSafetyReportDrug>

    <DrugSafetyReportDrug>
     <MedicinalProductName>Pharmaceuticals</MedicinalProductName>
     <ObtainedCountryCode>IN</ObtainedCountryCode>
    </DrugSafetyReportDrug>

   </DrugSafetyReportPatient>

   <DrugSafetyReportMedicalDevice>
    <MedicalDeviceName>BPM Infra</MedicalDeviceName>
    <DeviceProductCode>1234</DeviceProductCode>
   </DrugSafetyReportMedicalDevice>

   <DrugSafetyReportMedicalDevice>
    <MedicalDeviceName>Different Product name</MedicalDeviceName>
    <DeviceProductCode>456</DeviceProductCode>
   </DrugSafetyReportMedicalDevice>
  </ReportDrugSafetyReport>
 </Root>

 And My target xml is:

 <Root>
  <Drug>
   <medicinalproduct>BPM Infra</medicinalproduct>
   <ObtainedCountryCode>US</ObtainedCountryCode>
   <DeviceProductCode>1234</DeviceProductCode>
  </Drug>
  <Drug>
   <medicinalproduct>Multistandard VCR</medicinalproduct>
   <ObtainedCountryCode>UK</ObtainedCountryCode>
  </Drug>
  <Drug>
   <medicinalproduct>Pharmaceuticals</medicinalproduct>
   <ObtainedCountryCode>IN</ObtainedCountryCode>
  </Drug>
  <Drug>
   <medicinalproduct>Different Product name</medicinalproduct>
   <DeviceProductCode>456</DeviceProductCode>
  </Drug>
 </Root>

  Input xml contains two unbounded elements DrugSafetyReportDrug and
DrugSafetyReportMedicalDevice. Both of these elements belongs to
different parent elements, e.g.
 <root>ReportDrugSafetyReport/
DrugSafetyReportPatient/DrugSafetyReportDrug and
<root>/ReportDrugSafetyReport/DrugSafetyReportMedicalDevice

 Each of these elements has a set of child elements. Out of which,
MedicinalProductName is child element of  DrugSafetyReportDrug
(DrugSafetyReportDrug/MedicinalProductName)  and MedicalDeviceName is
child element of DrugSafetyReportMedicalDevice
(DrugSafetyReportMedicalDevice/MedicalDeviceName).

 Target xml has an unbounded element: drug.

If MedicinalProductName = MedicalDeviceName then DrugSafetyReportDrug
and DrugSafetyReportMedicalDevice should be grouped to a single drug
element (in the target xml). Otherwise, there would be a separate drug
element for each DrugSafetyReportDrug and
DrugSafetyReportMedicalDevice.

Thanks for the help!.

Thanks,
Amit

Current Thread