I would like to perform XSLT transformation for XML having multiple repetitive elements. I need to match the @id
attribute under Records/Metadata
and Record/Field
to get the respective output. I need to display all the field names and their output.
I am new to XSLT and any asistance in XSLT will be really helpful. Below is the input XML and the desired output.
Input:
<Records count="40">
<Metadata>
<FieldDefinitions>
<FieldDefinition alias="Finding_ID" name="Finding ID" guid="a69370c5-b6a7-4e20-a073-dd6bbd131e43" id="2260" />
<FieldDefinition alias="Status" name="Status" guid="68ecb49e-4eb6-492b-986f-43bf4a2f0d1f" id="2269" />
<FieldDefinition alias="Last_Updated" name="Last Updated" guid="b90f8e15-58d6-4fd6-b1d8-e9b008629723" id="2276" />
<FieldDefinition alias="Date_Closed" name="Date Closed" guid="f54c94c8-314f-4328-831b-ded5179fa95b" id="11224" />
<FieldDefinition alias="Expected_Completion_Date" name="Expected Completion Date" guid="a5ecc11f-ab40-483d-aff5-2f0a8e56e8d9" id="14653" />
<FieldDefinition alias="Actual_Completion_Date" name="Actual Completion Date" guid="6fc586cf-5709-47a9-a84c-a6b83141ce1d" id="14654" />
<FieldDefinition alias="Action_Plan_Review_Status" name="Action Plan Review Status" guid="82cc6d74-5881-4b23-9efb-e2b081d83e3f" id="30799" />
<FieldDefinition alias="IC_Description" name="Corrective Action Plan" guid="bfb7b09b-b728-4dbf-a016-3ee232948793" id="14655" />
<FieldDefinition alias="Action_Plan_Status" name="Action Plan Status" guid="49c3b62c-4828-41e0-bcbc-3dbcf37fc08d" id="27953" />
<FieldDefinition alias="Audit_Date" name="Review Date" guid="0d7ad11f-0d8c-4cc8-a51b-8ceeddafa9b1" id="27955" />
<FieldDefinition alias="Questionnaire_ID" name="Questionnaire ID" guid="a6e1f48e-08b7-45b8-b885-b9368f4cea2c" id="30178" />
<FieldDefinition alias="Question_Name" name="Question Name" guid="9136a544-cc8e-442d-89af-4bb9c64b4a2e" id="30179" />
<FieldDefinition alias="Action_Plan_Reviewer_1" name="Action Plan Reviewer" guid="d3ae8a48-c0c8-45c5-96f8-29d1d6f1a086" id="30789" />
<FieldDefinition alias="Facility_Name" name="Facility Name" guid="8cfba154-fc68-467c-810e-a9c6c69aa8a2" id="129" />
</FieldDefinitions>
</Metadata>
<LevelCounts>
<LevelCount count="40" guid="b085b230-e20f-41df-a849-f5d6811447ea" id="62" />
<LevelCount count="40" guid="7eb2544d-95aa-4122-9ee5-4f458f9cb1bc" id="60" />
</LevelCounts>
<Record parentId="0" moduleId="167" levelGuid="b085b230-e20f-41df-a849-f5d6811447ea" levelId="62" contentId="288373">
<Record parentId="0" moduleId="69" levelGuid="7eb2544d-95aa-4122-9ee5-4f458f9cb1bc" levelId="60" contentId="240937">
<Field guid="8cfba154-fc68-467c-810e-a9c6c69aa8a2" id="129" type="1">5000-AR</Field>
</Record>
<Field guid="a69370c5-b6a7-4e20-a073-dd6bbd131e43" id="2260" type="6">4035</Field>
<Field guid="a6e1f48e-08b7-45b8-b885-b9368f4cea2c" id="30178" type="1">288237</Field>
<Field guid="9136a544-cc8e-442d-89af-4bb9c64b4a2e" id="30179" type="1">chemistry</Field>
<Field guid="82cc6d74-5881-4b23-9efb-e2b081d83e3f" id="30799" type="4" />
<Field guid="68ecb49e-4eb6-492b-986f-43bf4a2f0d1f" id="2269" type="4">
<ListValues>
<ListValue id="1660" displayName="Open">Open</ListValue>
</ListValues>
</Field>
<Field guid="49c3b62c-4828-41e0-bcbc-3dbcf37fc08d" id="27953" type="4">
<ListValues>
<ListValue id="101940" displayName="Open">Open</ListValue>
</ListValues>
</Field>
<Field guid="bfb7b09b-b728-4dbf-a016-3ee232948793" id="14655" type="1" />
<Field guid="a5ecc11f-ab40-483d-aff5-2f0a8e56e8d9" id="14653" type="3" />
<Field guid="6fc586cf-5709-47a9-a84c-a6b83141ce1d" id="14654" type="3" />
<Field guid="f54c94c8-314f-4328-831b-ded5179fa95b" id="11224" type="3" />
<Field guid="b90f8e15-58d6-4fd6-b1d8-e9b008629723" id="2276" type="22" xmlConvertedValue="2014-11-02T08:50:03.707Z">11/2/2014 2:50:03 AM</Field>
<Field guid="d3ae8a48-c0c8-45c5-96f8-29d1d6f1a086" id="30789" type="8">
<Users>
<User id="217" domain="xyz" lastName="abc" firstName="h">habc</User>
</Users>
</Field>
<Field guid="0d7ad11f-0d8c-4cc8-a51b-8ceeddafa9b1" id="27955" type="3" xmlConvertedValue="2014-05-12T00:00:00Z">5/12/2014 12:00:00 AM</Field>
</Record>
</Records>
Output:
<Record>
<Data>
<Finding_id>4035</Finding_ID>
<Questionnaire_ID>288237<Questionnaire_ID>
<Question_Name>chemistry<Question_Name>
<!-- and so on -->
</Data>
</Record>