I have the following XML and I want to process it so that I do not get duplicates in the result set. I have simplified the problem to make it easier to understand. Also how can I use the results of one template as part of the input for another?
This:
<LINES xmlns:set="http://exslt.org/sets">
<STDINSTRSEQ>0</STDINSTRSEQ>
<STDINSTRSEQ>1</STDINSTRSEQ>
<STDINSTRSEQ>2</STDINSTRSEQ>
</LINES>
is the desired result. <STDINSTRSEQ> is the name of the field that should be treated as the key. I have provided the sample data here.
<PURCHASEORDER>
<POHEADER>
<REQUISITIONNO>1103025T12 000 000</REQUISITIONNO>
<REQLDATE>2004-10-26</REQLDATE>
<MTLREQDT></MTLREQDT>
<CREATEDT>2005-03-16</CREATEDT>
<VNDRLONGNM>DORI FOODS, INC.</VNDRLONGNM>
</POHEADER>
<LINES>
<LINE>
<POLINENBR>12</POLINENBR>
<STDINSTRDESC>NOTE: THIS PURCHASE ORDER SERVES AS CONFIRMATION</STDINSTRDESC>
<STDINSTRSEQ>0</STDINSTRSEQ>
</LINE>
<LINE>
<POLINENBR>11</POLINENBR>
<STDINSTRDESC>NOTE: THIS PURCHASE ORDER SERVES AS CONFIRMATION</STDINSTRDESC>
<STDINSTRSEQ>0</STDINSTRSEQ>
</LINE>
<LINE>
<POLINENBR>11</POLINENBR>
<STDINSTRDESC>THAT WE ACCEPT THE TERMS AND CONDITIONS OUTLINED IN</STDINSTRDESC>
<STDINSTRSEQ>1</STDINSTRSEQ>
</LINE>
<LINE>
<POLINENBR>12</POLINENBR>
<STDINSTRDESC>THAT WE ACCEPT THE TERMS AND CONDITIONS OUTLINED IN</STDINSTRDESC>
<STDINSTRSEQ>1</STDINSTRSEQ>
</LINE>
<LINE>
<POLINENBR>23</POLINENBR>
<STDINSTRDESC>YOUR CONTRACT DATED 02/16/2007 FOR THE FOLLOWING</STDINSTRDESC>
<STDINSTRSEQ>2</STDINSTRSEQ>
</LINE>
<LINE>
<POLINENBR>22</POLINENBR>
<STDINSTRDESC>YOUR CONTRACT DATED 02/16/2007 FOR THE FOLLOWING</STDINSTRDESC>
<STDINSTRSEQ>2</STDINSTRSEQ>
</LINE>
</LINES>
</PURCHASEORDER>
If I understand correctly what you are asking for, then given your sample XML this would work
An optimized version that uses
<xsl:key>to filter and provide unique results: