Sorting XML Elements and sorting data for a set of elements with XSLT

Pildilsviaw

New Member
I have below sample xml data. I need to sort the elements and data at multiple levels.1. sort has to be happend at just below the root level like \[code\]<InventoryRecord><SalesInRecord><SellOutRecord>\[/code\]2. sort has to be happend for all the elements in each \[code\]<InventoryRecord>\[/code\] or \[code\]<SalesInRecord>\[/code\] or \[code\]<SellOutRecord>\[/code\] on fields name3. sort has to be happend on data in \[code\]<LOCATION_ID><LOCATION_ID_DB><LOCATION_NAME>\[/code\] fields in the each record set irrespective of record set type. here the important thing is that, for some records \[code\]<LOCATION_ID>\[/code\] element may not available. in that case sort should happen on only \[code\]<LOCATION_ID_DB><LOCATION_NAME>\[/code\] values.\[code\]<root><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <RECORD_TYPE>VALID</RECORD_TYPE> <RECORD_NO>1</RECORD_NO> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <RECORD_TYPE>ERROR</RECORD_TYPE> <RECORD_NO>2</RECORD_NO> <LOCATION_NAME>XYZ ABC</LOCATION_NAME> <LOCATION_ID_DB>-1</LOCATION_ID_DB></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <RECORD_TYPE>WARNING</RECORD_TYPE> <RECORD_NO>3</RECORD_NO> <LOCATION_ID>2-3LG-2450</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>-1</LOCATION_ID_DB></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <RECORD_TYPE>ERROR</RECORD_TYPE> <RECORD_NO>4</RECORD_NO> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <RECORD_TYPE>ERROR</RECORD_TYPE> <RECORD_NO>6</RECORD_NO> <LOCATION_NAME>XYZ ABC</LOCATION_NAME> <LOCATION_ID_DB>-1</LOCATION_ID_DB></SellOutRecord><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <RECORD_TYPE>ERROR</RECORD_TYPE> <RECORD_NO>2</RECORD_NO> <LOCATION_ID>2-3LG-2450</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>-1</LOCATION_ID_DB></InventoryRecord><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <RECORD_TYPE>VALID</RECORD_TYPE> <RECORD_NO>4</RECORD_NO> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB></InventoryRecord><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <RECORD_TYPE>VALID</RECORD_TYPE> <RECORD_NO>5</RECORD_NO> <LOCATION_NAME>XYZ ABC</LOCATION_NAME>> <LOCATION_ID_DB>-1</LOCATION_ID_DB></InventoryRecord><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <RECORD_TYPE>ERROR</RECORD_TYPE> <RECORD_NO>8</RECORD_NO> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB></InventoryRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <RECORD_TYPE>VALID</RECORD_TYPE> <RECORD_NO>3</RECORD_NO> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB></SalesInRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <RECORD_TYPE>WARNING</RECORD_TYPE> <RECORD_NO>3</RECORD_NO> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB></SalesInRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <RECORD_TYPE>ERROR</RECORD_TYPE> <RECORD_NO>4</RECORD_NO> <LOCATION_ID>2-3LG-2450</LOCATION_ID> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <LOCATION_ID_DB>-1</LOCATION_ID_DB></SalesInRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <RECORD_TYPE>ERROR</RECORD_TYPE> <RECORD_NO>7</RECORD_NO> <LOCATION_NAME>XYZ ABC</LOCATION_NAME> <LOCATION_ID_DB>-1</LOCATION_ID_DB></SalesInRecord></root>\[/code\]the expected output would be.\[code\]<root><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <LOCATION_ID_DB>-1</LOCATION_ID_DB> <LOCATION_NAME>XYZ ABC</LOCATION_NAME> <RECORD_NO>5</RECORD_NO> <RECORD_TYPE>VALID</RECORD_TYPE></InventoryRecord><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <LOCATION_ID>2-3LG-2450</LOCATION_ID> <LOCATION_ID_DB>-1</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>2</RECORD_NO> <RECORD_TYPE>ERROR</RECORD_TYPE></InventoryRecord><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>4</RECORD_NO> <RECORD_TYPE>VALID</RECORD_TYPE></InventoryRecord><InventoryRecord> <FILE_TYPE>STOIV</FILE_TYPE> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>8</RECORD_NO> <RECORD_TYPE>ERROR</RECORD_TYPE></InventoryRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <LOCATION_ID_DB>-1</LOCATION_ID_DB> <LOCATION_NAME>XYZ ABC</LOCATION_NAME> <RECORD_NO>7</RECORD_NO> <RECORD_TYPE>ERROR</RECORD_TYPE></SalesInRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <LOCATION_ID>2-3LG-2450</LOCATION_ID> <LOCATION_ID_DB>-1</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>4</RECORD_NO> <RECORD_TYPE>ERROR</RECORD_TYPE></SalesInRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>3</RECORD_NO> <RECORD_TYPE>VALID</RECORD_TYPE></SalesInRecord><SalesInRecord> <FILE_TYPE>STOSI</FILE_TYPE> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>3</RECORD_NO> <RECORD_TYPE>WARNING</RECORD_TYPE></SalesInRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <LOCATION_ID_DB>-1</LOCATION_ID_DB> <LOCATION_NAME>XYZ ABC</LOCATION_NAME> <RECORD_NO>2</RECORD_NO> <RECORD_TYPE>ERROR</RECORD_TYPE></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <LOCATION_ID_DB>-1</LOCATION_ID_DB> <LOCATION_NAME>XYZ ABC</LOCATION_NAME> <RECORD_NO>6</RECORD_NO> <RECORD_TYPE>ERROR</RECORD_TYPE></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <LOCATION_ID>2-3LG-2450</LOCATION_ID> <LOCATION_ID_DB>-1</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>3</RECORD_NO> <RECORD_TYPE>WARNING</RECORD_TYPE></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>1</RECORD_NO> <RECORD_TYPE>VALID</RECORD_TYPE></SellOutRecord><SellOutRecord> <FILE_TYPE>STOSO</FILE_TYPE> <LOCATION_ID>2-3LG-2456</LOCATION_ID> <LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB> <LOCATION_NAME>XYZ XYZ</LOCATION_NAME> <RECORD_NO>4</RECORD_NO> <RECORD_TYPE>ERROR</RECORD_TYPE></SellOutRecord></root>\[/code\]
 
Back
Top