RE: [xsl] Using XLS to transform/join two XML docs.

Subject: RE: [xsl] Using XLS to transform/join two XML docs.
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Wed, 20 Dec 2000 09:56:52 -0000
> Effectively, I'm trying to do a SQL join without the db.

The general case of a join of two tables having a many-to-many relationship
certainly isn't easy in XSLT (I leave it as a challenge for the reader!).
But your example is one-to-many, and that's quite straightforward.
> 
> So, I'd like to start with:
> 
> 	<one>
> 		<a b="1">First Choice</a>
> 		<a b="2">Second Choice</a>
> 		<a b="3">Third Choice</a>
> 	</one>
> 	
> 	<two>
> 		<x id="1" b="1" this="that" them="those" />
> 		<x id="2" b="3" this="that" them="those" />
> 	</two>
> 
> And wind up with:
> 
> 	<three>
> 		<x id="1" b="First Choice" this="that" them="those" />
> 		<x id="2" b="Third Choice" this="that" them="those" />
> 	</three>
> 
> 
<xsl:template match="two/x">
  <xsl:copy>
   <xsl:copy-of select="@id | @this | @that"/>
   <xsl:attribute name="id">
      <xsl:value-of select="//one/a[@b = current()/@b]"/>
   </xsl:attribute>
  </xsl:copy>
</xsl:template>

or, for efficiency with a large data set, use a key in the predicate.

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread