xsl-list
[Top] [All Lists]

Re: Normalize-Space for a template

2003-05-02 11:36:37
Hello,
The following template create a URL.  One or more line
returns occur in the
source as well unwanted spaces.  I'm trying to figure
out how to use
"normalize-space" to strip these unwanted spaces. 
Here
is what I have
tried:

    <xsl:template name="makeUrl">
    <xsl:param name="Display"/>
    <xsl:param name="url"/>
    <xsl:param name="Query"/>
     <a>
         <xsl:attribute name="href">
            <xsl:value-of select="$url"/>&
         <xsl:value-of select="$Query"/>
            </xsl:attribute>
         <xsl:value-of select="$Display"/>
     </a>

    <!-- NORMALIZE THIS STUFF -->
  <xsl:value-of select='normalize-space(.)'/>

    </xsl:template>


It doesn't work.  Any ideas?
Karl
Normalize-space is a function just like any other
language. You have to pass in what you want it to work
on. The part you want to fix the spaces on is not being
passed into the normalize-space function (the . is
looking in the XML input not the <a> right above)

You could try a different approach:

<?xml version="1.0" encoding="utf-8"?>
<!--
        Author: 
        File: 
        Date: 
        Purpose: 
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
        <xsl:output method="xml" indent="yes"
encoding="UTF-8"/>

        <xsl:template match="/">
                <xsl:call-template name="makeUrl">
                        <xsl:with-param name="Display" select="'foo'"/>
                        <xsl:with-param name="url"
select="'http://bar.com'"/>
                        <xsl:with-param name="Query" select="'?hu=ok'"/>
                </xsl:call-template>
        </xsl:template>
        
        <xsl:template name="makeUrl">
                <xsl:param name="Display"/>
                <xsl:param name="url"/>
                <xsl:param name="Query"/>
        
        <xsl:variable name="fullURI">
                <xsl:value-of select="$url"/>&<xsl:value-of
select="$Query"/>
        </xsl:variable>
     <!-- <a>
         <xsl:attribute name="href">
            <xsl:value-of select="$url"/>&amp;
         <xsl:value-of select="$Query"/>
            </xsl:attribute>
         <xsl:value-of select="$Display"/>
     </a> -->
        <a>
        <xsl:attribute name="href">
                <xsl:value-of select="$fullURI"/>
        </xsl:attribute>
        <xsl:value-of select="$Display"/>
        </a>
          <!-- NORMALIZE THIS STUFF -->
          <!-- <xsl:value-of select='normalize-space(.)'/> -->
    </xsl:template>
    
</xsl:stylesheet>

    _/  _/_/    _/_/_/
   _/_/   _/ _/     _/
  _/               _/
 _/             _/
_/          _/_/_/_/
http://treebeard.sourceforge.net
http://ashpool.sourceforge.net

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