根据xsl 1.0中的一个值对相似的记录进行分组

时间:2018-12-07 11:12:30

标签: xslt-1.0

我需要根据OperationID标记中的值对记录进行分组。如果多个记录具有相同的operationId,则这些记录应存在于组合标记中,并且operationId在operationdetails标记下应该是公用的。我正在使用XSL vesion 1.0。请在下面找到输入xml和所需的xml格式。请提出一些使用1.0的解决方案

输入xml:

<root>
   <records>
        <record>
             <OperationID>13</OperationID>
             <GroupID>00</GroupID>
             <UTC_TIME>2018-12-06</UTC_TIME>
             <ID>123456789</ID>
             <DocumentID>ShowOperationCode20181206071249</DocumentID>
             <AllGroupID>JTH</AllGroupID>
             <AllID>B21B1</AllID>
        </record>
        <record>
             <OperationID>13</OperationID>
             <GroupID>00</GroupID>
             <UTC_TIME>2018-12-06</UTC_TIME>
             <ID>123456789</ID>
             <DocumentID>ShowOperationCode20181206071249</DocumentID>
             <AllGroupID>JTT</AllGroupID>
             <AllID>B21FB</AllID>
        </record>
        <record>
             <OperationID>14</OperationID>
             <GroupID>01</GroupID>
             <UTC_TIME>2018-12-06</UTC_TIME>
             <ID>123456788</ID>
             <DocumentID>ShowOperationCode20181206071250</DocumentID>
             <AllGroupID>KTH</AllGroupID>
             <AllID>BFFHT</AllID>
        </record>
    </records>
</root>

所需的xml格式:

<ApplicationArea>
      <UTC_TIME>2018-12-06</UTC_TIME>
      <ID>123456789</ID>
   </ApplicationArea>
   <DataArea>
       <OpertionsHeader>
            <DocumentID>ShowOperationCode20181206071249</DocumentID>
       </OpertionsHeader>
       <OperationsDetail>
            <OperationID>13</OperationID>
            <GroupID>00</GroupID>
            <Combinations>
               <Allowance>
                     <AllGroupID>JTH</AllGroupID>
                     <AllID>B21B1</AllID>
               </Allowance>
               <Allowance>
                     <AllGroupID>JTT</AllGroupID>
                     <AllID>B21FB</AllID>
               </Allowance>
            </Combinations>
       </OperationsDetail>
       <OperationsDetail>
           <OperationID>14</OperationID>
            <GroupID>01</GroupID>
            <Combinations>
               <Allowance>
                     <AllGroupID>KTH</AllGroupID>
                     <AllID>BFFHT</AllID>
               </Allowance>
            </Combinations>
       </OperationsDetail>
   </DataArea>

0 个答案:

没有答案