Re: [xsl] Mapping Values.

Subject: Re: [xsl] Mapping Values.
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Wed, 15 Mar 2006 15:09:23 +0530
Hi Amal,
   Please try this stylesheet. It uses identity template along with
templates for other rules.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">

<xsl:output method="xml" indent="yes" />

<xsl:template match="node() | @*">
    <xsl:copy>
      <xsl:apply-templates select="node() | @*" />
    </xsl:copy>
</xsl:template>

<xsl:template match="@*[. = 'abcd']">
    <xsl:attribute name="{name()}">1</xsl:attribute>
</xsl:template>

<xsl:template match="@*[(. = 'xxxx') or (. = 'yyyy')]">
    <xsl:attribute name="{name()}">2</xsl:attribute>
</xsl:template>

<xsl:template match="@*[. = 'aaaa']">
    <xsl:attribute name="{name()}">3</xsl:attribute>
</xsl:template>

</xsl:stylesheet>

Regards,
Mukul

On 3/14/06, Amal <raj.amal@xxxxxxxxx> wrote:
> I have an xml of the form
>
> <root>
> <bldg loc=3D3D3D"abcd" subloc=3D3D3D"abcd" />
> <bldg loc=3D3D3D"xxxx" subloc=3D3D3D"yyyy" />
> <bldg loc=3D3D3D"aaaa" subloc=3D3D3D"aaaa" />
>
> <addr bldgloc=3D3D3D"aaaa" bldgsubloc=3D3D3D"aaaa" />
> <addr bldgloc=3D3D3D"xxxx" bldgsubloc=3D3D3D"yyyy" />
>
>  </root>
>
> I have to convert it to
> <root>
> <bldg loc=3D3D3D"1" subloc=3D3D3D"1" />
> <bldg loc=3D3D3D"2" subloc=3D3D3D"2" />
> <bldg loc=3D3D3D"3" subloc=3D3D3D"3" />
>
> <addr bldgloc=3D3D3D"3" bldgsubloc=3D3D3D"3" />
> <addr bldgloc=3D3D3D"2" bldgsubloc=3D3D3D"2" />
>
> </root>
>
> So for this purpose I want to map some strings to some values that can be
> used later. Like when I map bldg block in input to bldg block in output I
> want to map the attributes to a number and then use the same when mapping
> addr tags.
> How shud I go about doing it ?
>
>
> Amal.

Current Thread
  • [xsl] Mapping Values.
    • Amal - Tue, 14 Mar 2006 16:33:22 +0530
      • Mukul Gandhi - Wed, 15 Mar 2006 15:09:23 +0530 <=
        • Amal - Wed, 15 Mar 2006 15:11:20 +0530
      • <Possible follow-ups>
      • Amal - Tue, 14 Mar 2006 18:03:10 +0530