xsl-list
[Top] [All Lists]

[xsl] How to do this unique grouping on XML using XSLT 1.0

2012-06-19 08:12:43
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 your help!.

Thanks,
Amit

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--