|
Subject: Re: [xsl] change a list of attribute name From: Xiaocun Xu <xiaocunxu@xxxxxxxxx> Date: Fri, 3 Aug 2001 13:31:49 -0700 (PDT) |
Great :) Thanks for the tip. This solution would
leave the XSL to be free of this mapping clutter. I
will experiment with the approach this weekend.
Much thanks,
Xiaocun
--- Jeni Tennison <mail@xxxxxxxxxxxxxxxx> wrote:
> Hi Xiaocun,
>
> > I failed to show the more complicated case where
> "Organization
> > Unique ID" need to be transformed into
> "OrganizationCode". There
> > isn't a set rule to transform from one to another.
> So I am looking
> > for a more general solution where one set of
> values can be mapped to
> > another set.
>
> Oh right. I was confused by the fact that you said
> you were
> *generating* the node set of new node names - I
> thought you meant that
> you were generating the new node names on the fly,
> not that they were
> static. In that case I'd probably use a document
> holding the mapping
> information for those that had non-standard maps,
> have something like
> map.xml:
>
> <maps>
> <map value="Organization Unique ID"
> name="OrganizationCode" />
> ...
> </maps>
>
> Hold that document in a variable:
>
> <xsl:variable name="maps"
> select="document('map.xml')" />
>
> Define a key that indexed the names by the values
> that should be
> converted into those names:
>
> <xsl:key name="maps" match="map/@name"
> use="../@value" />
>
> And then do something similar to what I said before:
>
> <xsl:for-each select="$header/cell">
> <xsl:variable name="value" select="." />
> <xsl:variable name="attrName">
> <xsl:for-each select="$maps">
> <xsl:variable name="mapName"
> select="key('maps', $value)" />
> <xsl:value-of select="$mapName" />
> <xsl:if test="not($mapName)">
> <xsl:value-of select="translate($value, '
> ', '')" />
> </xsl:if>
> </xsl:for-each>
> </xsl:variable>
> <xsl:attribute name="{$attrName}">
> ...
> </xsl:attribute>
> </xsl:for-each>
>
> There's no need to use a node-set() extension
> function if you access
> the information about the non-standard names using
> the document()
> function.
>
> Cheers,
>
> Jeni
>
> ---
> Jeni Tennison
> http://www.jenitennison.com/
>
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] change a list of attribut, Wendell Piez | Thread | Re: [xsl] change a list of attribut, Alexander Gutman |
| Re: [xsl]   vs  , Trevor Nash | Date | [xsl] keys fast for lookups? attrib, Mike Lamb |
| Month |