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