xsl-list
[Top] [All Lists]

RE: merge using keys, xslt 2.0

2005-04-05 00:40:37
Thanks Mike. 
The two documents (and the third param to key() led me that way). 

Then a second pass to sort alphabetically.

regards DaveP

    -----Original Message-----
    From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com] 
    Sent: 05 April 2005 08:17
    To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
    Subject: RE: [xsl] merge using keys, xslt 2.0
    
    Don't use keys, use grouping
    
    <xsl:for-each-group select="$doc1/body/outline/outline,
    $doc2/body/outline/outline"
     group-by="@xmlUrl">
      <xsl:copy-of select="current-group()[1]"/> </xsl:for-each-group>
    
    Michael Kay
    http://www.saxonica.com/ 
    
    > -----Original Message-----
    > From: Pawson, David 
[mailto:David(_dot_)Pawson(_at_)rnib(_dot_)org(_dot_)uk]
    > Sent: 05 April 2005 08:09
    > To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
    > Subject: [xsl] merge using keys, xslt 2.0
    > 
    > 
    > I want to merge two instances, both valid to a single 
    dtd, removing 
    > duplicates
    > 
    > 
    > Outline structure is
    > 
    > <body>
    > <outline>
    > <outline type="rss" text="O'Reilly Network Safari Bookshelf" 
    > title="O'Reilly Network Safari Bookshelf" 
    > xmlUrl="http://safari.oreilly.com/rss"/>
    > </outline>
    > </body>
    > 
    > Two documents $home and $work 
    >     <xsl:variable name="home" select="document('home.opml')"/>
    >     <xsl:variable name="work" select="document('work.opml')"/>
    > 
    > Stylesheet has
    > 
    > <xsl:key name='outline' match='outline/outline' use='@xmlUrl'/>
    > 
    >   <xsl:template match="outline[outline]">
    >       <xsl:copy>
    >         <xsl:copy-of select="@*"/>
    >           <xsl:apply-templates
    > select="key('outline',outline,$home)[1]|
    > key('outline',outline,$work)[1]"/>
    >       </xsl:copy>
    >     </xsl:template>
    > 
    > 
    > I'm unsure where to go from here?
    > 
    > Any help appreciated.
    > 
    > 
    > 
    > 
    > Regards DaveP.
    > 
    > **** snip here *****
    > 
    > --
    > DISCLAIMER:
    > 
    > NOTICE: The information contained in this email and any 
    attachments is 
    > confidential and may be privileged.  If you are not the intended 
    > recipient you should not use, disclose, distribute or 
    copy any of the 
    > content of it or of any attachment; you are requested to 
    notify the 
    > sender immediately of your receipt of the email and then 
    to delete it 
    > and any attachments from your system.
    > 
    > RNIB endeavours to ensure that emails and any attachments 
    generated by 
    > its staff are free from viruses or other contaminants.  
    However, it 
    > cannot accept any responsibility for any  such which are 
    transmitted.
    > We therefore recommend you scan all attachments.
    > 
    > Please note that the statements and views expressed in 
    this email and 
    > any attachments are those of the author and do not necessarily 
    > represent those of RNIB.
    > 
    > RNIB Registered Charity Number: 226227
    > 
    > Website: http://www.rnib.org.uk
    > 
    > 
    > 
    > 
    > 
    --~---------------------------------------------------------
    ---------
    > 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>
    > --~--
    > 
    > 
    
    
    
    --~---------------------------------------------------------
    ---------
    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>
    --~--
    
    

--~------------------------------------------------------------------
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>