xsl-list
[Top] [All Lists]

Re: [xsl] Unique Nodes

2007-03-31 13:01:52
At 2007-03-31 14:53 -0400, Karthik wrote:
I am new to XSLT.

Welcome!

I have to grab the unique Products from the Input below using XSLT 1.0

INPUT:
...
Desired OUTPUT:
...
The code which I am trying is

<xsl:variable name="unique-Product"
select="//Proposal/Quote/Products/Product[not(ProductId=ancestor::Product/ProductId)]"/>

      <xsl:for-each select="$unique-Product">
      </xsl:for-each>

Your use of axes in this fashion won't work ... you should look up the Muenchian Method using Google and read how the code below works.

I hope this helps.

. . . . . . . . . . Ken

t:\ftemp>type karthik.xml
<Proposal>
      <Quote>
      <QuoteId>1</QuoteId>
              <Products>
                      <Product>
                              <ProdID>
                                      1234
                              </ProdID>
                              <ProdID>
                                      5678
                              </ProdID>
                      </Product>
              </Products>
      </Quote>
      <Quote>
      <QuoteId>2</QuoteId>
              <Products>
                      <Product>
                              <ProdID>
                                      1234
                              </ProdID>
                              <ProdID>
                                      5678
                              </ProdID>
                      </Product>
              </Products>
      </Quote>
</Proposal>

t:\ftemp>type karthik.xsl
<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">

<xsl:output indent="yes"/>
<xsl:key name="prodids" match="ProdID" use="."/>

<xsl:template match="/">
  <Proposal>
    <Products>
      <xsl:for-each select="//ProdID[generate-id(.)=
                                     generate-id(key('prodids',.)[1])]">
        <ProdId><xsl:value-of select="normalize-space(.)"/></ProdId>
      </xsl:for-each>
    </Products>
  </Proposal>
</xsl:template>

</xsl:stylesheet>
t:\ftemp>xslt karthik.xml karthik.xsl con
<?xml version="1.0" encoding="utf-8"?>
<Proposal>
   <Products>
      <ProdId>1234</ProdId>
      <ProdId>5678</ProdId>
   </Products>
</Proposal>
t:\ftemp>


--
World-wide corporate, govt. & user group XML, XSL and UBL training
RSS feeds:     publicly-available developer resources and training
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>