Question

J'ai le code XML suivant et je veux le traiter afin que je ne reçois pas de doublons dans le jeu de résultats. J'ai simplifié le problème pour le rendre plus facile à comprendre. Aussi comment puis-je utiliser les résultats d'un modèle dans le cadre de l'entrée pour une autre?

<LINES xmlns:set="http://exslt.org/sets">
  <STDINSTRSEQ>0</STDINSTRSEQ>
  <STDINSTRSEQ>1</STDINSTRSEQ>
  <STDINSTRSEQ>2</STDINSTRSEQ>
</LINES>

est le résultat souhaité. <STDINSTRSEQ> est le nom du champ qui doit être traitée comme la clé. J'ai fourni les exemples de données ici.

<PURCHASEORDER>
  <POHEADER>
    <BODID>infor-nid:Elevon:SCMCS::12654_0198617S12 000 000:?&amp;verb=</BODID>
    <VERB></VERB>
    <TenantId>Elevon</TenantId>
    <ToLogicalId>lid://default</ToLogicalId>
    <FromLogicalId>lid://snipesm@mcsk12.net</FromLogicalId>
    <FromPartyId>snipesm@mcsk12.net</FromPartyId>
    <AccountingEntityId>SCMCS</AccountingEntityId>
    <ActionCode></ActionCode>
    <MessageId>lid://snipesm@mcsk12.net:1267198551845:4</MessageId>
    <UserId></UserId>
    <CurrentDateTime>2010-02-26T09:35:51Z</CurrentDateTime>
    <CTLENTYID>MCS</CTLENTYID>
    <VCKVAL>12654</VCKVAL>
    <POKVAL>0198617S12 000 000</POKVAL>
    <PCKVAL>000017</PCKVAL>
    <PODT>2005-03-16</PODT>
    <POREQDT>2005-06-30</POREQDT>
    <POQTEDT>2005-03-08</POQTEDT>
    <REQUISITIONNO>1103025T12 000 000</REQUISITIONNO>
    <REQHDATE></REQHDATE>
    <REQLDATE>2004-10-26</REQLDATE>
    <MTLREQDT></MTLREQDT>
    <RQSTRLONGNM></RQSTRLONGNM>
    <POCLASSOFORDCD>S</POCLASSOFORDCD>
    <SNGLDISTACKVAL></SNGLDISTACKVAL>
    <DISTACKVAL></DISTACKVAL>
    <CREATEDT>2005-03-16</CREATEDT>
    <POPROMDT></POPROMDT>
    <RORDDT></RORDDT>
    <RQSTRID>TEL</RQSTRID>
    <TAXCDREF></TAXCDREF>
    <DFLTDLVYLOCCD>407-P</DFLTDLVYLOCCD>
    <POGROSSAMT>1.00</POGROSSAMT>
    <SHIPPOINTNM></SHIPPOINTNM>
    <CRNCYCD>USD</CRNCYCD>
    <ORDVNDRCTACTID></ORDVNDRCTACTID>
    <LINEAMTTOT>0.00</LINEAMTTOT>
    <TERMSCD>18</TERMSCD>
    <FOBCD>01</FOBCD>
    <BYRCD>12</BYRCD>
    <INFORBUS>INFORBUS</INFORBUS>
    <VNDRLONGNM>DORI FOODS, INC.</VNDRLONGNM>
    <VNDRADDRLN001>P.O. BOX 11365</VNDRADDRLN001>
    <VNDRADDRLN002></VNDRADDRLN002>
    <VNDRADDRLN003></VNDRADDRLN003>
    <VNDRCITYLN>RICHMOND</VNDRCITYLN>
    <VNDRSTCD>VA</VNDRSTCD>
    <VNDRZIPCD>23</VNDRZIPCD>
    <VNDRZIPCDREST>2301365</VNDRZIPCDREST>
    <VCKTRDPRTNRID>12654</VCKTRDPRTNRID>
    <TPNAME>DORI FOODS, INC.</TPNAME>
    <TPADDR1>P.O. BOX 11365</TPADDR1>
    <TPADDR2></TPADDR2>
    <TPADDR3></TPADDR3>
    <TPCITY>RICHMOND</TPCITY>
    <TPZIP>232301365</TPZIP>
    <TPSTATE>VA</TPSTATE>
    <TPFAX>8043551631</TPFAX>
    <TPPARTNERID>12654</TPPARTNERID>
    <TPEMAIL>KITCHENJEREMYT@MCSK12.NET</TPEMAIL>
    <ECPOACKNHRSCNT>0</ECPOACKNHRSCNT>
    <ECSUPLMACKNHRSCNT>0</ECSUPLMACKNHRSCNT>
    <ECACKNPROCSTATCD>N</ECACKNPROCSTATCD>
    <UPLMACKNPROCSTATCD>N</UPLMACKNPROCSTATCD>
    <CORPTRDPRTNRID>MCSGENERIC</CORPTRDPRTNRID>
    <BYRSHRTNM>KEN RUBY</BYRSHRTNM>
    <BYRLONGNM>KEN RUBY</BYRLONGNM>
    <BYRUSERID>PURKENR</BYRUSERID>
    <BYRUSATELNBR></BYRUSATELNBR>
    <BYRTELNBR2VAL></BYRTELNBR2VAL>
    <BYRFAXXNBR></BYRFAXXNBR>
    <TERMSSHRTDESC>NET 30 DAY</TERMSSHRTDESC>
    <FRSTSTDINSTRCD>098</FRSTSTDINSTRCD>
    <XXC004>xxC004.STDINSTRDESC</XXC004>
    <INVCTONM></INVCTONM>
    <INVCTOADDRLN001></INVCTOADDRLN001>
    <INVCTOADDRLN002></INVCTOADDRLN002>
    <INVCTOADDRLN003></INVCTOADDRLN003>
    <INVCTOCITYLN></INVCTOCITYLN>
    <INVCTOSTCD></INVCTOSTCD>
    <INVCTOZIPCD></INVCTOZIPCD>
    <INVCTOCTRYCD></INVCTOCTRYCD>
  </POHEADER>
  <LINES>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>23</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>23.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>NOTE: THIS PURCHASE ORDER SERVES AS CONFIRMATION</STDINSTRDESC>
      <STDINSTRSEQ>0</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>AS PER BID OF MARCH 8, 2005.....</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>22</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>22.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>NOTE: THIS PURCHASE ORDER SERVES AS CONFIRMATION</STDINSTRDESC>
      <STDINSTRSEQ>0</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>PRICE: $47.89/CASE - SHIP LOT: 30 CASE</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>21</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>21.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>NOTE: THIS PURCHASE ORDER SERVES AS CONFIRMATION</STDINSTRDESC>
      <STDINSTRSEQ>0</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>BRAND: MCCORMICK 930839 - 25 LBS.</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>12</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>12.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>NOTE: THIS PURCHASE ORDER SERVES AS CONFIRMATION</STDINSTRDESC>
      <STDINSTRSEQ>0</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>PRICE: $78.92/CASE - SHIP LOT: 25 CASE</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>11</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>11.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>NOTE: THIS PURCHASE ORDER SERVES AS CONFIRMATION</STDINSTRDESC>
      <STDINSTRSEQ>0</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>BRAND: MCCORMICK 931025 - 25 LBS.</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>11</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>11.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>THAT WE ACCEPT THE TERMS AND CONDITIONS OUTLINED IN</STDINSTRDESC>
      <STDINSTRSEQ>1</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>BRAND: MCCORMICK 931025 - 25 LBS.</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>12</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>12.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>THAT WE ACCEPT THE TERMS AND CONDITIONS OUTLINED IN</STDINSTRDESC>
      <STDINSTRSEQ>1</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>PRICE: $78.92/CASE - SHIP LOT: 25 CASE</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>21</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>21.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>THAT WE ACCEPT THE TERMS AND CONDITIONS OUTLINED IN</STDINSTRDESC>
      <STDINSTRSEQ>1</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>BRAND: MCCORMICK 930839 - 25 LBS.</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>22</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>22.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>THAT WE ACCEPT THE TERMS AND CONDITIONS OUTLINED IN</STDINSTRDESC>
      <STDINSTRSEQ>1</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>PRICE: $47.89/CASE - SHIP LOT: 30 CASE</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>23</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>23.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>THAT WE ACCEPT THE TERMS AND CONDITIONS OUTLINED IN</STDINSTRDESC>
      <STDINSTRSEQ>1</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>AS PER BID OF MARCH 8, 2005.....</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>23</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>23.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>YOUR CONTRACT DATED 02/16/2007 FOR THE FOLLOWING</STDINSTRDESC>
      <STDINSTRSEQ>2</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>AS PER BID OF MARCH 8, 2005.....</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>22</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>22.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>YOUR CONTRACT DATED 02/16/2007 FOR THE FOLLOWING</STDINSTRDESC>
      <STDINSTRSEQ>2</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>PRICE: $47.89/CASE - SHIP LOT: 30 CASE</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>21</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>21.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>YOUR CONTRACT DATED 02/16/2007 FOR THE FOLLOWING</STDINSTRDESC>
      <STDINSTRSEQ>2</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>BRAND: MCCORMICK 930839 - 25 LBS.</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>12</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>12.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>YOUR CONTRACT DATED 02/16/2007 FOR THE FOLLOWING</STDINSTRDESC>
      <STDINSTRSEQ>2</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>PRICE: $78.92/CASE - SHIP LOT: 25 CASE</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
    <LINE>
      <DLVYLOCCD></DLVYLOCCD>
      <STRGLOCID></STRGLOCID>
      <DLVYLOCCDLONGNM></DLVYLOCCDLONGNM>
      <DLVYLOCCDADDRLN001></DLVYLOCCDADDRLN001>
      <DLVYLOCCDADDRLN002></DLVYLOCCDADDRLN002>
      <DLVYLOCCDADDRLN003></DLVYLOCCDADDRLN003>
      <CITYLN></CITYLN>
      <STCD></STCD>
      <ZIPCD></ZIPCD>
      <CTRYCD></CTRYCD>
      <CTCTNM>KEN RUBY</CTCTNM>
      <POLINENBR>11</POLINENBR>
      <APPOLINECD>081</APPOLINECD>
      <UNIQID>11.081</UNIQID>
      <UOMCD></UOMCD>
      <STDINSTRDESC>YOUR CONTRACT DATED 02/16/2007 FOR THE FOLLOWING</STDINSTRDESC>
      <STDINSTRSEQ>2</STDINSTRSEQ>
      <MCKVAL></MCKVAL>
      <MTLDESC></MTLDESC>
      <POPROMDT></POPROMDT>
      <CRRNM></CRRNM>
      <MFGRREF></MFGRREF>
      <MFGRPARTREF></MFGRPARTREF>
      <PODTLDESC>BRAND: MCCORMICK 931025 - 25 LBS.</PODTLDESC>
      <XTRNVNDRUOMCD></XTRNVNDRUOMCD>
      <VNDRPARTREF></VNDRPARTREF>
      <VCVNDRPARTREF></VCVNDRPARTREF>
      <MTLLONGDESC></MTLLONGDESC>
      <XXR013>xxR013.MTLDESC</XXR013>
      <XXE4E00>xxE4E00.CMNTDESC</XXE4E00>
      <ORDQTY>0.0000</ORDQTY>
      <UOMSHRTDESC></UOMSHRTDESC>
      <UNITPRC>0.00000</UNITPRC>
      <VATTAXAMT>0.00</VATTAXAMT>
      <POLINEAMT>0.00</POLINEAMT>
      <XXE4F00>xxE4F00.UPLDFILENM</XXE4F00>
    </LINE>
  </LINES>
</PURCHASEORDER>
Était-ce utile?

La solution

Si je comprends bien ce que vous demandez, alors donné cela fonctionnerait votre échantillon XML

<?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet
   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

  <xsl:template match="/">
    <xsl:apply-templates select="/PURCHASEORDER/LINES" />
  </xsl:template>

  <xsl:template match="LINES">
    <LINES xmlns:set="http://exslt.org/sets">
           <xsl:apply-templates select="LINE/STDINSTRSEQ[not(. = preceding::STDINSTRSEQ)]"/> 
    </LINES>
  </xsl:template>

  <xsl:template match="STDINSTRSEQ">
          <xsl:copy> <xsl:apply-templates/> </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

Une version optimisée qui utilise <xsl:key> de filtrer et d'obtenir des résultats uniques:

<?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet
   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

  <xsl:key name="STDIN" match="STDINSTRSEQ" use="./text()" />

  <xsl:template match="/">
    <xsl:apply-templates select="/PURCHASEORDER/LINES" />
  </xsl:template>

  <xsl:template match="LINES">
    <LINES xmlns:set="http://exslt.org/sets">
           <xsl:apply-templates select="LINE/STDINSTRSEQ[generate-id(.) = generate-id(key('STDIN', .))]"/>
    </LINES>
  </xsl:template>

  <xsl:template match="STDINSTRSEQ">
          <xsl:copy> <xsl:apply-templates/> </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

Autres conseils

Je ne suis pas sûr de les apply-templates. Je ne comprends pas comment ils fonctionnent. Donc, pour un XML qui était comme ça:

<xml>
  <line>209</line>
  <line>209</line>
  <line>209</line>
  <line>100</line>
  <line>101</line>
  <line>101</line>
  <line>100</line>
  <line>102</line>
  <line>209</line>
  <line>101</line>
  <line>101</line>
  <line>101</line>
  <line>101</line>
  <line>209</line>
  <line>100</line>
 </xml>

pour éliminer les répétitions, ne laissant que des valeurs uniques:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output indent="no" />
  <xsl:template match="/">
    <Output>
      <xsl:for-each select="//line">
        <xsl:if test="not(. = preceding::line)">
          <line>
            <xsl:value-of select="string(.)" disable-output-escaping="no" />
          </line>
        </xsl:if>
      </xsl:for-each>
    </Output>
  </xsl:template>
</xsl:stylesheet>

Et le résultat était:

<Output>
  <line>100</line>
  <line>101</line>
  <line>102</line>
  <line>209</line>
</Output>

Et il était beaucoup plus rapide que la solution fournie par Mads Hansen.

<xsl:stylesheet 
  version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
>
  <xsl:key name="kSTDINSTRSEQ" match="STDINSTRSEQ" use="." />

  <xsl:template match="PURCHASEORDER">
    <xsl:apply-templates select="LINES" />
  </xsl:template>

  <xsl:template match="LINES">
    <LINES xmlns:set="http://exslt.org/sets">
      <xsl:copy-of select="
        LINE/STDINSTRSEQ[
          generate-id() = generate-id(key('kSTDINSTRSEQ', .)[1])
        ]
      " />
    </LINES>
  </xsl:template>
</xsl:stylesheet>

produit

<LINES xmlns:set="http://exslt.org/sets">
  <STDINSTRSEQ>0</STDINSTRSEQ>
  <STDINSTRSEQ>1</STDINSTRSEQ>
  <STDINSTRSEQ>2</STDINSTRSEQ>
</LINES>

Pour y accéder à partir d'un autre modèle XSL, écrire dans un fichier temporaire et utiliser la fonction document(). Vous pouvez également le faire le regroupement dans l'autre fichier XSLT.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top