Subject: RE: [xsl] Keys off of variable xml source From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 1 Apr 2005 18:01:01 +0100 |
> The reason for a lookup xml source is to act as a cross-reference to > data in the main xml source. So, I need to reference all elements > who's ID = 123 but my match is expressed as a code value "abc". The > code "abc" maps to 123 in my lookup. > So, I'm still scratching my head wondering how I might effectively put > the external file to use with keys, but thinking it won't work, the > context would strictly be of the main xml source. I'm not sure which part of the explanation you didn't understand. lookup.xml <lookup> <entry code="abc" value="123"/> <entry code="xyz" value="987"/> </lookup> main.xml <data> <reading code="abc"/> </data> required output <data> <reading value="123"/> </data> stylesheet <xsl:transform .... <xsl:key name="k" match="entry" use="code"/> <xsl:template match="*"> <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy> </xsl:template> <xsl:template match="reading"> <reading> <xsl:variable name="code" select="@code"/> <xsl:for-each select="document('lookup.xml')"> <xsl:attribute name="value"><xsl:value-of select="key('k', $code)"/> </xsl:for-each> </reading> </xsl:template> or in 2.0 <xsl:template match="reading"> <reading value="{key('k', @code, document('lookup.xml'))}"/> </xsl:template> Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Keys off of variable xml , David Carlisle | Thread | Re: [xsl] Keys off of variable xml , Wendell Piez |
RE: [xsl] Testing 2 XML documents f, Mukul Gandhi | Date | Re: [xsl] Keys off of variable xml , Wendell Piez |
Month |