【发布时间】:2011-05-03 07:39:54
【问题描述】:
我有一个以下格式的输入。我想从中删除重复的元素
<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>
<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>
我期望的输出是:
<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>
【问题讨论】:
-
XSLT 是一种 XML 转换语言。您的输入看起来不像 XML。也许另一种语言更适合您的目的。
-
假设您的输入确实是 XML(可能标签丢失是因为您没有将数据标记为代码),答案很大程度上取决于您是否能够使用 XSLT 2.0 或者您是否能够使用坚持使用 XSLT 1.0。
标签: xslt