This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Concat state-city together
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Concat state-city together
- From: Xiaocun Xu <xiaocunxu at yahoo dot com>
- Date: Mon, 30 Jul 2001 06:28:17 -0700 (PDT)
- Reply-To: xsl-list at lists dot mulberrytech dot com
Thanks for the suggestion, it made a lot of sense and
worked great.
Much appreciated,
Xiaocun
--- Alexander Gutman <gutman@novosoft-us.com> wrote:
> Helo.
>
> One of possible solutions is presented below.
> If you want the output to be text rather than XML,
> use
> <xsl:output method="text"/> and modify the templates
> accordingly.
>
> <xsl:template match="/*">
> <pairs>
> <xsl:apply-templates
> select="row[cell[@column='2']]"/>
> </pairs>
> </xsl:template>
>
> <xsl:template match="row">
> <pair>
> <xsl:variable name="state-row"
>
select="preceding-sibling::row[cell[@column='1']][1]"/>
> <xsl:choose>
> <xsl:when test="$state-row"><xsl:value-of
> select="$state-row/cell"/></xsl:when>
> <xsl:otherwise>Unknown</xsl:otherwise>
> </xsl:choose>
> <!---->-<xsl:value-of select="cell"/>
> </pair>
> </xsl:template>
>
> Xiaocun Xu wrote:
> > I am having problem figure this out, so any help
> is
> > appreciated.
> > I have a source document, where a row contain
> either
> > state or city names. State names are always
> located
> > at cell/@column=1 and city names are always
> > cell/@column=2. I want to concat each of the city
> > names with the last state name in the previous
> rows.
> > Following is an example:
> >
> > Source XML:
> > <row row="17">
> > <cell column="1">Alabama</cell>
> > </row>
> > <row row="18">
> > <cell column="2">Birmingham</cell>
> > </row>
> > <row row="19">
> > <cell column="2">Hoover</cell>
> > </row>
> > <row row="20">
> > <cell column="1">Arizona</cell>
> > </row>
> > <row row="21">
> > <cell column="2">Phoenix</cell>
> > </row>
> > <row row="22">
> > <cell column="2">Tucson</cell>
> > </row>
> > <!-- more states and cities follows -->
> >
> > Target text:
> > Alabama-Birmingham
> > Alabama-Hoover
> > Arizona-Phoenix
> > Arizona-Tucson
>
> 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