xsl-list
[Top] [All Lists]

Re: Transforming portions of content or values

2003-05-07 12:33:06
Thanks Rick

I understand all apart from the bit about variables, which I have not used
before.

Please would you clarify where in the stylesheet I put the variables? Within
the parent template?
Also, not sure why the URL needs to be in variables as well?

Thanks

Charles

----- Original Message -----
From: "Rick Taylor" <taylor(_at_)ppdm(_dot_)org>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Wednesday, May 07, 2003 4:58 PM
Subject: Re: [xsl] Transforming portions of content or values



Charles,

1.  There is not much difference in processing the XML to HTML in both of
the cases you provide.
You will probably need the company name and URL in global variables.
<xsl:variable name="companyName" select='XYZ'/>
<xsl:variable name="companyURL" select='www.xyz.com'/>

Then in your template
You need to process the string 'Worked for XYZ Inc.' such that you
1. get the substring before 'XYZ'
2. process the XYZ
3. get the substring after 'XYZ'

      <xsl:template match="experience">
        <xsl:value-of select="substring-before(.,$companyName)"/>
          <a href="{$companyURL}">
             <xsl:value-of select="$companyName"/>
          </a>
        <xsl:value-of select="substring-after(.,$companyName)"/>
     </xsl:template>

2.  You can simply put one in.
<experience dates="1990 - 2000" company="Worked for XYZ Inc.">

      <xsl:template match="experience">
        <xsl:value-of select="@dates"/>
        <xsl:text>&#160;</xsl:text>
        <xsl:value-of select="@company"/>
     </xsl:template>

-rick

At 09:08 AM 5/7/03 +0100, you wrote:
Hi

1.    How do I transform a portion of text in an XML document so that I
can
nest it within hyperlink tags in an XSL stylesheet for HTML display, as
follows?

a.    Content:

<experience>Worked for XYZ Inc.</experience>

transformed to HTML (where [XYZ] = hyperlink to www. xyz.com):

Worked for  [XYZ] Inc.

b.    Values:

<experience dates="1990 - 2000" company="Worked for XYZ Inc."/>

transformed to HTML (where [XYZ] = hyperlink to www. xyz.com):

1990 - 2000    Worked for [XYZ] Inc.

2.    Which throws up another question: is it possible to insert a
non-breaking space between text during the transformation e.g. between
the
2000 and the 'Worked' as above?


Thanks

Charles


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Rick Taylor
XML Developer
PPDM Association


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list