开发者

How to remove duplicates from xml using xsl [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

How to remove duplicate XML nodes using XSLT

I have an input in the following format.i would like to delete the duplicate elements from it

<pasabm:TransactionProductVO>
   <pasabm:ItemNumber>100-0711-1</pasabm:ItemNumber>
   <pasabm:ItemSource>EBIZ_01</pasabm:ItemSource>
   <pasabm:ItemUom>Ea</pasabm:ItemUom>
   <pasabm:LotNumber>043111-13</pasabm:LotNumber>
   <pasabm:LotSource>EBIZ_01</pasabm:LotSource>
   <pasabm:LotLocation>M1</pasabm:LotLocation>
   <pasabm:ExpirationDate/>
   <pasabm:TransactionSerialAssocVO>
      <pasabm:ItemSerialNumber>3173041321</pasabm:ItemSerialNumber>
      <pasabm:SerialType>USN-1</pasabm:SerialType>
      <pasabm:SerialIdentification>100-0711-1</pasabm:SerialIdentification>
      <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
      <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
     </pasabm:TransactionSerialAssocVO>
     <pasabm:TransactionSerialAssocVO>
         <pasabm:ItemSerialNumber>3173041322</pasabm:ItemSerialNumber>
     <pasabm:SerialType>USN-1</pasabm:SerialType>
     <pasabm:SerialIdentification/>
     <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
     <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
       </pasabm:TransactionSerialAssocVO>
       <pasabm:TransactionSerialAssocVO>
          <pasabm:ItemSerialNumber>3173041323</pasabm:ItemSerialNumber>
      <pasabm:SerialType>USN-1</pasabm:SerialType>
      <pasabm:SerialIdentification/>
      <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
      <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
    </pasabm:TransactionSerialAssocVO>
</pasabm:TransactionProductVO>
<pasabm:TransactionProductVO>
   <pasabm:ItemNumber>100-0711-1</pasabm:ItemNumber>
   <pasabm:ItemSource>EBIZ_01</pasabm:ItemSource>
   <pasabm:ItemUom>Ea</pasabm:ItemUom>
   <pasabm:LotNumber>043111-13</pasabm:LotNumber>
   <pasabm:LotSource>EBIZ_01</pasabm:LotSource>
   <pasabm:LotLocation>M1</pasabm:LotLocation>
   <pasabm:ExpirationDate/>
     <pasabm:TransactionSerialAssocVO>
         <pasabm:ItemSerialNumber>3173041322</pasabm:ItemSerialNumber>
     <pasabm:SerialType>USN-1</pasabm:SerialType>
     <pasabm:SerialIdentification/>
     <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
     <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
     </pasabm:TransactionSerialAssocVO>
     <pasabm:TransactionSerialAssocVO>
          <pasabm:ItemSerialNumber>3173041321</pasabm:ItemSerialNumber>
          <pasabm:SerialType>USN-1</pasabm:SerialType>
          <pasabm:SerialIdentification>100-0711-1</pasabm:SerialIdentification>
          <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
          <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
     </pasabm:TransactionSerialAssocVO>
      <pasabm:TransactionSerialAssocVO>
          <pasabm:ItemSerialNumber>3173041323</pasabm:ItemSerialNumber>
      <pasabm:SerialType>USN-1</pasabm:SerialType>
      <pasabm:SerialIdentification/>
      <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
  开发者_C百科    <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
      </pasabm:TransactionSerialAssocVO>
</pasabm:TransactionProductVO>
<pasabm:TransactionProductVO>
   <pasabm:ItemNumber>100-0711-1</pasabm:ItemNumber>
   <pasabm:ItemSource>EBIZ_01</pasabm:ItemSource>
   <pasabm:ItemUom>Ea</pasabm:ItemUom>
   <pasabm:LotNumber>043111-13</pasabm:LotNumber>
   <pasabm:LotSource>EBIZ_01</pasabm:LotSource>
   <pasabm:LotLocation>M1</pasabm:LotLocation>
   <pasabm:ExpirationDate/>
     <pasabm:TransactionSerialAssocVO>
         <pasabm:ItemSerialNumber>3173041323</pasabm:ItemSerialNumber>
     <pasabm:SerialType>USN-1</pasabm:SerialType>
     <pasabm:SerialIdentification/>
     <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
     <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
     </pasabm:TransactionSerialAssocVO>
     <pasabm:TransactionSerialAssocVO>
          <pasabm:ItemSerialNumber>3173041322</pasabm:ItemSerialNumber>
          <pasabm:SerialType>USN-1</pasabm:SerialType>
          <pasabm:SerialIdentification>100-0711-1</pasabm:SerialIdentification>
          <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
          <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
     </pasabm:TransactionSerialAssocVO>
      <pasabm:TransactionSerialAssocVO>
          <pasabm:ItemSerialNumber>3173041321</pasabm:ItemSerialNumber>
      <pasabm:SerialType>USN-1</pasabm:SerialType>
      <pasabm:SerialIdentification/>
      <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
      <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
      </pasabm:TransactionSerialAssocVO>
</pasabm:TransactionProductVO>

output i am expecting is:

<pasabm:TransactionProductVO>
   <pasabm:ItemNumber>100-0711-1</pasabm:ItemNumber>
   <pasabm:ItemSource>EBIZ_01</pasabm:ItemSource>
   <pasabm:ItemUom>Ea</pasabm:ItemUom>
   <pasabm:LotNumber>043111-13</pasabm:LotNumber>
   <pasabm:LotSource>EBIZ_01</pasabm:LotSource>
   <pasabm:LotLocation>M1</pasabm:LotLocation>
   <pasabm:ExpirationDate/>
   <pasabm:TransactionSerialAssocVO>
      <pasabm:ItemSerialNumber>3173041321</pasabm:ItemSerialNumber>
      <pasabm:SerialType>USN-1</pasabm:SerialType>
      <pasabm:SerialIdentification>100-0711-1</pasabm:SerialIdentification>
      <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
      <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
     </pasabm:TransactionSerialAssocVO>
     <pasabm:TransactionSerialAssocVO>
         <pasabm:ItemSerialNumber>3173041322</pasabm:ItemSerialNumber>
     <pasabm:SerialType>USN-1</pasabm:SerialType>
     <pasabm:SerialIdentification/>
     <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
     <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
       </pasabm:TransactionSerialAssocVO>
       <pasabm:TransactionSerialAssocVO>
          <pasabm:ItemSerialNumber>3173041323</pasabm:ItemSerialNumber>
      <pasabm:SerialType>USN-1</pasabm:SerialType>
      <pasabm:SerialIdentification/>
      <pasabm:ParentSerialIdentification>918993-30413301-0413-23-1</pasabm:ParentSerialIdentification>
      <pasabm:ShippedItemFlag>0</pasabm:ShippedItemFlag>
    </pasabm:TransactionSerialAssocVO>
</pasabm:TransactionProductVO>


With XSLT 1.0 use the Muenchian method for grouping.

With XSLT 2.0 use <xsl:for-each-group>.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜