使用 XSLT 删除重复元素 [英] Removing duplicate elements with XSLT

查看:33
本文介绍了使用 XSLT 删除重复元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用特定节点 (ItemID) 从我的 XML 中消除重复元素

I need to eliminate duplicate elements from my XML using a specific node (ItemID)

我的 XML 如下所示;

My XML Looks as follows;

<XML>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>723073</ItemID>
        <ColorID>02</ColorID>
        <Description>Pentel LR7 Energel Metal Tip Refill 0.7mm</Description>
        <MainCategory>WRITING INSTRUMENTS</MainCategory>
        <SubCategory>Refill</SubCategory>
        <LineNum>               1.0000000</LineNum>
        <Qty>               6.0000000</Qty>
        <UnitPriceExclTax>              10.0200000</UnitPriceExclTax>
        <LineTax>               8.4200000</LineTax>
        <LinePriceExclTax>              60.1200000</LinePriceExclTax>
        <ColorName>Black</ColorName>
        <UOM>EA</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637542_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>903420</ItemID>
        <ColorID />
        <Description>STEPHENS JUNIOR Stapler Half Strip KW586</Description>
        <MainCategory>OFFICE SUNDRIES</MainCategory>
        <SubCategory>Staplers</SubCategory>
        <LineNum>               2.0000000</LineNum>
        <Qty>               3.0000000</Qty>
        <UnitPriceExclTax>              32.2500000</UnitPriceExclTax>
        <LineTax>              13.5400000</LineTax>
        <LinePriceExclTax>              96.7500000</LinePriceExclTax>
        <ColorName />
        <UOM>Ea</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637547_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>867241</ItemID>
        <ColorID />
        <Description>TRODAT PRINTY S/Inking Stamp Copy 4911</Description>
        <MainCategory>STAMPS DATERS NUMBERERS</MainCategory>
        <SubCategory>Self Inking Stamps</SubCategory>
        <LineNum>               3.0000000</LineNum>
        <Qty>               1.0000000</Qty>
        <UnitPriceExclTax>              42.1500000</UnitPriceExclTax>
        <LineTax>               5.9000000</LineTax>
        <LinePriceExclTax>              42.1500000</LinePriceExclTax>
        <ColorName />
        <UOM>Ea</UOM>
        <Backorder>               1.0000000</Backorder>
        <INVENTTRANSID>      CAP5637548_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>941151</ItemID>
        <ColorID />
        <Description>PENTEL Correction Tape 5mx5mm ZT35</Description>
        <MainCategory>OFFICE SUNDRIES</MainCategory>
        <SubCategory>Correction Fluid/Pens/Tape</SubCategory>
        <LineNum>               4.0000000</LineNum>
        <Qty>               2.0000000</Qty>
        <UnitPriceExclTax>              25.1500000</UnitPriceExclTax>
        <LineTax>               7.0400000</LineTax>
        <LinePriceExclTax>              50.3000000</LinePriceExclTax>
        <ColorName />
        <UOM>Ea</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637549_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>801215</ItemID>
        <ColorID />
        <Description>MONDI ROTATRIM Copy Paper A4 80Gsm White</Description>
        <MainCategory>A4 Paper</MainCategory>
        <SubCategory>White Bond Paper</SubCategory>
        <LineNum>               5.0000000</LineNum>
        <Qty>             100.0000000</Qty>
        <UnitPriceExclTax>              29.0100000</UnitPriceExclTax>
        <LineTax>             406.1400000</LineTax>
        <LinePriceExclTax>            2901.0000000</LinePriceExclTax>
        <ColorName />
        <UOM>Pkt 500</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637552_060</INVENTTRANSID>
    </Line>
    <Line>
        <SALESID>         CAP716197SO</SALESID>
        <INVOICEID>         CAP600795SI</INVOICEID>
        <INVOICEDATE>2010/05/06</INVOICEDATE>
        <NUMBERSEQUENCEGROUP />
        <LINENUM>               2.0000000</LINENUM>
        <ITEMID>805236</ITEMID>
        <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
        <NAME>Ruled Paper A4 Fnt/Marg JD76</NAME>
        <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
        <INVENTTRANSID>      CAP5637543_060</INVENTTRANSID>
        <QTYSALES>               4.0000000</QTYSALES>
        <QTYORDERED>               4.0000000</QTYORDERED>
        <QTYBACKORDERSALES>               4.0000000</QTYBACKORDERSALES>
        <QTYBACKORDERINVENT>               4.0000000</QTYBACKORDERINVENT>
        <SALESUNIT>EA</SALESUNIT>
        <ORIGSALESID>         CAP716197SO</ORIGSALESID>
        <DATAAREAID>wal</DATAAREAID>
        <RECID>622392608</RECID>
        <RecVersion>1</RecVersion>
    </Line>
    <Line>
        <SALESID>         CAP716197SO</SALESID>
        <INVOICEID>         CAP600795SI</INVOICEID>
        <INVOICEDATE>2010/05/06</INVOICEDATE>
        <NUMBERSEQUENCEGROUP />
        <LINENUM>               3.0000000</LINENUM>
        <ITEMID>941150</ITEMID>
        <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
        <NAME>PENGUIN Correction Fluid 20ml White</NAME>
        <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
        <INVENTTRANSID>      CAP5637546_060</INVENTTRANSID>
        <QTYSALES>               6.0000000</QTYSALES>
        <QTYORDERED>               6.0000000</QTYORDERED>
        <QTYBACKORDERSALES>               6.0000000</QTYBACKORDERSALES>
        <QTYBACKORDERINVENT>               6.0000000</QTYBACKORDERINVENT>
        <SALESUNIT>EA</SALESUNIT>
        <ORIGSALESID>         CAP716197SO</ORIGSALESID>
        <DATAAREAID>wal</DATAAREAID>
        <RECID>622392609</RECID>
        <RecVersion>1</RecVersion>
    </Line>
    <Line>
        <SALESID>         CAP716197SO</SALESID>
        <INVOICEID>         CAP600795SI</INVOICEID>
        <INVOICEDATE>2010/05/06</INVOICEDATE>
        <NUMBERSEQUENCEGROUP />
        <LINENUM>               5.0000000</LINENUM>
        <ITEMID>867241</ITEMID>
        <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
        <NAME>TRODAT PRINTY S/Inking Stamp Copy 4911</NAME>
        <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
        <INVENTTRANSID>      CAP5637548_060</INVENTTRANSID>
        <QTYSALES>               2.0000000</QTYSALES>
        <QTYORDERED>               2.0000000</QTYORDERED>
        <QTYBACKORDERSALES>               1.0000000</QTYBACKORDERSALES>
        <QTYBACKORDERINVENT>               1.0000000</QTYBACKORDERINVENT>
        <SALESUNIT>EA</SALESUNIT>
        <ORIGSALESID>         CAP716197SO</ORIGSALESID>
        <DATAAREAID>wal</DATAAREAID>
        <RECID>622392610</RECID>
        <RecVersion>1</RecVersion>
    </Line>
</XML>

您会看到 XML 不相同但标签总是在同一个地方,并且当前有 1 个重复的 867241

You will see the XML is not identical but the tag is always in the same place, and there is currently 1 duplicate 867241

我不想改变顺序,只是删除了元素.

I do not want the order to change, just the element removed.

期望的输出是;

<XML>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>723073</ItemID>
        <ColorID>02</ColorID>
        <Description>Pentel LR7 Energel Metal Tip Refill 0.7mm</Description>
        <MainCategory>WRITING INSTRUMENTS</MainCategory>
        <SubCategory>Refill</SubCategory>
        <LineNum>               1.0000000</LineNum>
        <Qty>               6.0000000</Qty>
        <UnitPriceExclTax>              10.0200000</UnitPriceExclTax>
        <LineTax>               8.4200000</LineTax>
        <LinePriceExclTax>              60.1200000</LinePriceExclTax>
        <ColorName>Black</ColorName>
        <UOM>EA</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637542_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>903420</ItemID>
        <ColorID />
        <Description>STEPHENS JUNIOR Stapler Half Strip KW586</Description>
        <MainCategory>OFFICE SUNDRIES</MainCategory>
        <SubCategory>Staplers</SubCategory>
        <LineNum>               2.0000000</LineNum>
        <Qty>               3.0000000</Qty>
        <UnitPriceExclTax>              32.2500000</UnitPriceExclTax>
        <LineTax>              13.5400000</LineTax>
        <LinePriceExclTax>              96.7500000</LinePriceExclTax>
        <ColorName />
        <UOM>Ea</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637547_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>867241</ItemID>
        <ColorID />
        <Description>TRODAT PRINTY S/Inking Stamp Copy 4911</Description>
        <MainCategory>STAMPS DATERS NUMBERERS</MainCategory>
        <SubCategory>Self Inking Stamps</SubCategory>
        <LineNum>               3.0000000</LineNum>
        <Qty>               1.0000000</Qty>
        <UnitPriceExclTax>              42.1500000</UnitPriceExclTax>
        <LineTax>               5.9000000</LineTax>
        <LinePriceExclTax>              42.1500000</LinePriceExclTax>
        <ColorName />
        <UOM>Ea</UOM>
        <Backorder>               1.0000000</Backorder>
        <INVENTTRANSID>      CAP5637548_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>941151</ItemID>
        <ColorID />
        <Description>PENTEL Correction Tape 5mx5mm ZT35</Description>
        <MainCategory>OFFICE SUNDRIES</MainCategory>
        <SubCategory>Correction Fluid/Pens/Tape</SubCategory>
        <LineNum>               4.0000000</LineNum>
        <Qty>               2.0000000</Qty>
        <UnitPriceExclTax>              25.1500000</UnitPriceExclTax>
        <LineTax>               7.0400000</LineTax>
        <LinePriceExclTax>              50.3000000</LinePriceExclTax>
        <ColorName />
        <UOM>Ea</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637549_060</INVENTTRANSID>
    </Line>
    <Line>
        <SupplierID>Waltons</SupplierID>
        <InvoiceID>CAP600795SI</InvoiceID>
        <InvoiceDate>20100506</InvoiceDate>
        <ItemID>801215</ItemID>
        <ColorID />
        <Description>MONDI ROTATRIM Copy Paper A4 80Gsm White</Description>
        <MainCategory>A4 Paper</MainCategory>
        <SubCategory>White Bond Paper</SubCategory>
        <LineNum>               5.0000000</LineNum>
        <Qty>             100.0000000</Qty>
        <UnitPriceExclTax>              29.0100000</UnitPriceExclTax>
        <LineTax>             406.1400000</LineTax>
        <LinePriceExclTax>            2901.0000000</LinePriceExclTax>
        <ColorName />
        <UOM>Pkt 500</UOM>
        <Backorder>               0.0000000</Backorder>
        <INVENTTRANSID>      CAP5637552_060</INVENTTRANSID>
    </Line>
    <Line>
        <SALESID>         CAP716197SO</SALESID>
        <INVOICEID>         CAP600795SI</INVOICEID>
        <INVOICEDATE>2010/05/06</INVOICEDATE>
        <NUMBERSEQUENCEGROUP />
        <LINENUM>               2.0000000</LINENUM>
        <ITEMID>805236</ITEMID>
        <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
        <NAME>Ruled Paper A4 Fnt/Marg JD76</NAME>
        <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
        <INVENTTRANSID>      CAP5637543_060</INVENTTRANSID>
        <QTYSALES>               4.0000000</QTYSALES>
        <QTYORDERED>               4.0000000</QTYORDERED>
        <QTYBACKORDERSALES>               4.0000000</QTYBACKORDERSALES>
        <QTYBACKORDERINVENT>               4.0000000</QTYBACKORDERINVENT>
        <SALESUNIT>EA</SALESUNIT>
        <ORIGSALESID>         CAP716197SO</ORIGSALESID>
        <DATAAREAID>wal</DATAAREAID>
        <RECID>622392608</RECID>
        <RecVersion>1</RecVersion>
    </Line>
    <Line>
        <SALESID>         CAP716197SO</SALESID>
        <INVOICEID>         CAP600795SI</INVOICEID>
        <INVOICEDATE>2010/05/06</INVOICEDATE>
        <NUMBERSEQUENCEGROUP />
        <LINENUM>               3.0000000</LINENUM>
        <ITEMID>941150</ITEMID>
        <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
        <NAME>PENGUIN Correction Fluid 20ml White</NAME>
        <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
        <INVENTTRANSID>      CAP5637546_060</INVENTTRANSID>
        <QTYSALES>               6.0000000</QTYSALES>
        <QTYORDERED>               6.0000000</QTYORDERED>
        <QTYBACKORDERSALES>               6.0000000</QTYBACKORDERSALES>
        <QTYBACKORDERINVENT>               6.0000000</QTYBACKORDERINVENT>
        <SALESUNIT>EA</SALESUNIT>
        <ORIGSALESID>         CAP716197SO</ORIGSALESID>
        <DATAAREAID>wal</DATAAREAID>
        <RECID>622392609</RECID>
        <RecVersion>1</RecVersion>
    </Line>
</XML>

我可以使用 XSLT 1 或 2

I can use XSLT 1 or 2

问候,

推荐答案

I.XSLT 1.0 解决方案:

这是使用 Muenchian 分组的解决方案:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:key name="kLineById" match="Line" use="ItemID|ITEMID"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match=
  "Line[not(generate-id() = generate-id(key('kLineById', ItemID|ITEMID)[1]))]"
  />
</xsl:stylesheet>

注意:

  1. 慕尼黑分组XSLT 1.0 最有效的已知通用分组方法.

  1. Muenchian grouping is the most efficient known general grouping method for XSLT 1.0.

推"式 使用.

Pure "push" style used.

<小时>

二.XSLT 2.0 解决方案:

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/*">
     <XML>
       <xsl:for-each-group select="Line" group-by="ItemID | ITEMID">
         <xsl:sequence select="."/>
       </xsl:for-each-group>
     </XML>
 </xsl:template>
</xsl:stylesheet>

两种解决方案,当应用于提供的 XML 文档时:

<XML>
        <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>723073</ItemID>
            <ColorID>02</ColorID>
            <Description>Pentel LR7 Energel Metal Tip Refill 0.7mm</Description>
            <MainCategory>WRITING INSTRUMENTS</MainCategory>
            <SubCategory>Refill</SubCategory>
            <LineNum>               1.0000000</LineNum>
            <Qty>               6.0000000</Qty>
            <UnitPriceExclTax>              10.0200000</UnitPriceExclTax>
            <LineTax>               8.4200000</LineTax>
            <LinePriceExclTax>              60.1200000</LinePriceExclTax>
            <ColorName>Black</ColorName>
            <UOM>EA</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637542_060</INVENTTRANSID>
        </Line>
        <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>903420</ItemID>
            <ColorID />
            <Description>STEPHENS JUNIOR Stapler Half Strip KW586</Description>
            <MainCategory>OFFICE SUNDRIES</MainCategory>
            <SubCategory>Staplers</SubCategory>
            <LineNum>               2.0000000</LineNum>
            <Qty>               3.0000000</Qty>
            <UnitPriceExclTax>              32.2500000</UnitPriceExclTax>
            <LineTax>              13.5400000</LineTax>
            <LinePriceExclTax>              96.7500000</LinePriceExclTax>
            <ColorName />
            <UOM>Ea</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637547_060</INVENTTRANSID>
        </Line>
        <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>867241</ItemID>
            <ColorID />
            <Description>TRODAT PRINTY S/Inking Stamp Copy 4911</Description>
            <MainCategory>STAMPS DATERS NUMBERERS</MainCategory>
            <SubCategory>Self Inking Stamps</SubCategory>
            <LineNum>               3.0000000</LineNum>
            <Qty>               1.0000000</Qty>
            <UnitPriceExclTax>              42.1500000</UnitPriceExclTax>
            <LineTax>               5.9000000</LineTax>
            <LinePriceExclTax>              42.1500000</LinePriceExclTax>
            <ColorName />
            <UOM>Ea</UOM>
            <Backorder>               1.0000000</Backorder>
            <INVENTTRANSID>      CAP5637548_060</INVENTTRANSID>
        </Line>
        <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>941151</ItemID>
            <ColorID />
            <Description>PENTEL Correction Tape 5mx5mm ZT35</Description>
            <MainCategory>OFFICE SUNDRIES</MainCategory>
            <SubCategory>Correction Fluid/Pens/Tape</SubCategory>
            <LineNum>               4.0000000</LineNum>
            <Qty>               2.0000000</Qty>
            <UnitPriceExclTax>              25.1500000</UnitPriceExclTax>
            <LineTax>               7.0400000</LineTax>
            <LinePriceExclTax>              50.3000000</LinePriceExclTax>
            <ColorName />
            <UOM>Ea</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637549_060</INVENTTRANSID>
        </Line>
        <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>801215</ItemID>
            <ColorID />
            <Description>MONDI ROTATRIM Copy Paper A4 80Gsm White</Description>
            <MainCategory>A4 Paper</MainCategory>
            <SubCategory>White Bond Paper</SubCategory>
            <LineNum>               5.0000000</LineNum>
            <Qty>             100.0000000</Qty>
            <UnitPriceExclTax>              29.0100000</UnitPriceExclTax>
            <LineTax>             406.1400000</LineTax>
            <LinePriceExclTax>            2901.0000000</LinePriceExclTax>
            <ColorName />
            <UOM>Pkt 500</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637552_060</INVENTTRANSID>
        </Line>
        <Line>
            <SALESID>         CAP716197SO</SALESID>
            <INVOICEID>         CAP600795SI</INVOICEID>
            <INVOICEDATE>2010/05/06</INVOICEDATE>
            <NUMBERSEQUENCEGROUP />
            <LINENUM>               2.0000000</LINENUM>
            <ITEMID>805236</ITEMID>
            <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
            <NAME>Ruled Paper A4 Fnt/Marg JD76</NAME>
            <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
            <INVENTTRANSID>      CAP5637543_060</INVENTTRANSID>
            <QTYSALES>               4.0000000</QTYSALES>
            <QTYORDERED>               4.0000000</QTYORDERED>
            <QTYBACKORDERSALES>               4.0000000</QTYBACKORDERSALES>
            <QTYBACKORDERINVENT>               4.0000000</QTYBACKORDERINVENT>
            <SALESUNIT>EA</SALESUNIT>
            <ORIGSALESID>         CAP716197SO</ORIGSALESID>
            <DATAAREAID>wal</DATAAREAID>
            <RECID>622392608</RECID>
            <RecVersion>1</RecVersion>
        </Line>
        <Line>
            <SALESID>         CAP716197SO</SALESID>
            <INVOICEID>         CAP600795SI</INVOICEID>
            <INVOICEDATE>2010/05/06</INVOICEDATE>
            <NUMBERSEQUENCEGROUP />
            <LINENUM>               3.0000000</LINENUM>
            <ITEMID>941150</ITEMID>
            <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
            <NAME>PENGUIN Correction Fluid 20ml White</NAME>
            <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
            <INVENTTRANSID>      CAP5637546_060</INVENTTRANSID>
            <QTYSALES>               6.0000000</QTYSALES>
            <QTYORDERED>               6.0000000</QTYORDERED>
            <QTYBACKORDERSALES>               6.0000000</QTYBACKORDERSALES>
            <QTYBACKORDERINVENT>               6.0000000</QTYBACKORDERINVENT>
            <SALESUNIT>EA</SALESUNIT>
            <ORIGSALESID>         CAP716197SO</ORIGSALESID>
            <DATAAREAID>wal</DATAAREAID>
            <RECID>622392609</RECID>
            <RecVersion>1</RecVersion>
        </Line>
        <Line>
            <SALESID>         CAP716197SO</SALESID>
            <INVOICEID>         CAP600795SI</INVOICEID>
            <INVOICEDATE>2010/05/06</INVOICEDATE>
            <NUMBERSEQUENCEGROUP />
            <LINENUM>               5.0000000</LINENUM>
            <ITEMID>867241</ITEMID>
            <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
            <NAME>TRODAT PRINTY S/Inking Stamp Copy 4911</NAME>
            <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
            <INVENTTRANSID>      CAP5637548_060</INVENTTRANSID>
            <QTYSALES>               2.0000000</QTYSALES>
            <QTYORDERED>               2.0000000</QTYORDERED>
            <QTYBACKORDERSALES>               1.0000000</QTYBACKORDERSALES>
            <QTYBACKORDERINVENT>               1.0000000</QTYBACKORDERINVENT>
            <SALESUNIT>EA</SALESUNIT>
            <ORIGSALESID>         CAP716197SO</ORIGSALESID>
            <DATAAREAID>wal</DATAAREAID>
            <RECID>622392610</RECID>
            <RecVersion>1</RecVersion>
        </Line>
</XML>

产生想要的、正确的结果:

<XML>
   <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>723073</ItemID>
            <ColorID>02</ColorID>
            <Description>Pentel LR7 Energel Metal Tip Refill 0.7mm</Description>
            <MainCategory>WRITING INSTRUMENTS</MainCategory>
            <SubCategory>Refill</SubCategory>
            <LineNum>               1.0000000</LineNum>
            <Qty>               6.0000000</Qty>
            <UnitPriceExclTax>              10.0200000</UnitPriceExclTax>
            <LineTax>               8.4200000</LineTax>
            <LinePriceExclTax>              60.1200000</LinePriceExclTax>
            <ColorName>Black</ColorName>
            <UOM>EA</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637542_060</INVENTTRANSID>
        </Line>
   <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>903420</ItemID>
            <ColorID/>
            <Description>STEPHENS JUNIOR Stapler Half Strip KW586</Description>
            <MainCategory>OFFICE SUNDRIES</MainCategory>
            <SubCategory>Staplers</SubCategory>
            <LineNum>               2.0000000</LineNum>
            <Qty>               3.0000000</Qty>
            <UnitPriceExclTax>              32.2500000</UnitPriceExclTax>
            <LineTax>              13.5400000</LineTax>
            <LinePriceExclTax>              96.7500000</LinePriceExclTax>
            <ColorName/>
            <UOM>Ea</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637547_060</INVENTTRANSID>
        </Line>
   <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>867241</ItemID>
            <ColorID/>
            <Description>TRODAT PRINTY S/Inking Stamp Copy 4911</Description>
            <MainCategory>STAMPS DATERS NUMBERERS</MainCategory>
            <SubCategory>Self Inking Stamps</SubCategory>
            <LineNum>               3.0000000</LineNum>
            <Qty>               1.0000000</Qty>
            <UnitPriceExclTax>              42.1500000</UnitPriceExclTax>
            <LineTax>               5.9000000</LineTax>
            <LinePriceExclTax>              42.1500000</LinePriceExclTax>
            <ColorName/>
            <UOM>Ea</UOM>
            <Backorder>               1.0000000</Backorder>
            <INVENTTRANSID>      CAP5637548_060</INVENTTRANSID>
        </Line>
   <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>941151</ItemID>
            <ColorID/>
            <Description>PENTEL Correction Tape 5mx5mm ZT35</Description>
            <MainCategory>OFFICE SUNDRIES</MainCategory>
            <SubCategory>Correction Fluid/Pens/Tape</SubCategory>
            <LineNum>               4.0000000</LineNum>
            <Qty>               2.0000000</Qty>
            <UnitPriceExclTax>              25.1500000</UnitPriceExclTax>
            <LineTax>               7.0400000</LineTax>
            <LinePriceExclTax>              50.3000000</LinePriceExclTax>
            <ColorName/>
            <UOM>Ea</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637549_060</INVENTTRANSID>
        </Line>
   <Line>
            <SupplierID>Waltons</SupplierID>
            <InvoiceID>CAP600795SI</InvoiceID>
            <InvoiceDate>20100506</InvoiceDate>
            <ItemID>801215</ItemID>
            <ColorID/>
            <Description>MONDI ROTATRIM Copy Paper A4 80Gsm White</Description>
            <MainCategory>A4 Paper</MainCategory>
            <SubCategory>White Bond Paper</SubCategory>
            <LineNum>               5.0000000</LineNum>
            <Qty>             100.0000000</Qty>
            <UnitPriceExclTax>              29.0100000</UnitPriceExclTax>
            <LineTax>             406.1400000</LineTax>
            <LinePriceExclTax>            2901.0000000</LinePriceExclTax>
            <ColorName/>
            <UOM>Pkt 500</UOM>
            <Backorder>               0.0000000</Backorder>
            <INVENTTRANSID>      CAP5637552_060</INVENTTRANSID>
        </Line>
   <Line>
            <SALESID>         CAP716197SO</SALESID>
            <INVOICEID>         CAP600795SI</INVOICEID>
            <INVOICEDATE>2010/05/06</INVOICEDATE>
            <NUMBERSEQUENCEGROUP/>
            <LINENUM>               2.0000000</LINENUM>
            <ITEMID>805236</ITEMID>
            <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
            <NAME>Ruled Paper A4 Fnt/Marg JD76</NAME>
            <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
            <INVENTTRANSID>      CAP5637543_060</INVENTTRANSID>
            <QTYSALES>               4.0000000</QTYSALES>
            <QTYORDERED>               4.0000000</QTYORDERED>
            <QTYBACKORDERSALES>               4.0000000</QTYBACKORDERSALES>
            <QTYBACKORDERINVENT>               4.0000000</QTYBACKORDERINVENT>
            <SALESUNIT>EA</SALESUNIT>
            <ORIGSALESID>         CAP716197SO</ORIGSALESID>
            <DATAAREAID>wal</DATAAREAID>
            <RECID>622392608</RECID>
            <RecVersion>1</RecVersion>
        </Line>
   <Line>
            <SALESID>         CAP716197SO</SALESID>
            <INVOICEID>         CAP600795SI</INVOICEID>
            <INVOICEDATE>2010/05/06</INVOICEDATE>
            <NUMBERSEQUENCEGROUP/>
            <LINENUM>               3.0000000</LINENUM>
            <ITEMID>941150</ITEMID>
            <INVENTDIMID>      CAP0000594_061</INVENTDIMID>
            <NAME>PENGUIN Correction Fluid 20ml White</NAME>
            <CONFIRMEDDLV>2010/05/06</CONFIRMEDDLV>
            <INVENTTRANSID>      CAP5637546_060</INVENTTRANSID>
            <QTYSALES>               6.0000000</QTYSALES>
            <QTYORDERED>               6.0000000</QTYORDERED>
            <QTYBACKORDERSALES>               6.0000000</QTYBACKORDERSALES>
            <QTYBACKORDERINVENT>               6.0000000</QTYBACKORDERINVENT>
            <SALESUNIT>EA</SALESUNIT>
            <ORIGSALESID>         CAP716197SO</ORIGSALESID>
            <DATAAREAID>wal</DATAAREAID>
            <RECID>622392609</RECID>
            <RecVersion>1</RecVersion>
        </Line>
</XML>

这篇关于使用 XSLT 删除重复元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆