The xslt should be able to first iterate through the each column in <TableRecord></TableRecord>. For each column it checks the LookupTableId. Based on the LookupTableId it has to jump to the appropriate <Lookups></Lookups> and retrieve its sub childs. For example if LookupTableId="8003" it goes to <LookUps ExchangeTableId="8003"> and gets it childs.