Improving XSLT code

G. Ken Holman gkholman at
Mon Jul 12 22:37:47 BST 1999

Hi Malliks,

You may find it more helpful to post this kind of question to:

where there are a number of people to help.  I happen to have some time in
a lunch break to post an answer here.

At 99/07/12 09:32 -0700, Mallikarjuna Sangappa wrote:
>There are elements with the same attributes. So when
>I'm writing the stylesheet, I have to repeat the code
>for the two elements. 
(Chicago|SanFrancisco|NewYork|Detroit) #IMPLIED">
>So in the stylesheet, I'll have to repeat the code
>for both CITY and METROS, like

Fortunately, you are using the same attribute name for both element types,
so you are really close ... just put what you have into a named template
and call the template each time you process each element type.

>  <!--City-->  
>  <xsl:param-variable name="varcity" expr = "CITY"/>

There is no need to use a parameterized variable here ... a regular
variable is fine since you don't need to pass a parameter.  BTW, your
attribute name is "CITY_VALUE" not "CITY".

I've attached a sample below (simplified without the use of an external

I hope this helps.

............... Ken

T:\malliks>type test.xml
<?xml version="1.0"?>
(Chicago|SanFrancisco|NewYork|Detroit) #IMPLIED">


  <METROS CITY_VALUE="SanFrancisco"/>
  <CITY CITY_VALUE="NewYork"/>

T:\malliks>type test.xsl
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="">

<xsl:template match="CITY">
  <xsl:call-template name="city"/>

<xsl:template match="METROS">
  <xsl:call-template name="city"/>

<xsl:template name="city">
  <xsl:variable name="varcity" expr = "@CITY_VALUE"/>

	   <xsl:when test="$varcity='Chicago'">

	   <xsl:when test="$varcity='SanFrancisco'">

	   <xsl:when test="$varcity='NewYork'">

	   <xsl:when test="$varcity='Detroit'">


T:\malliks>call xsl test.xml test.xsl test.txt
T:\malliks>type test.txt



G. Ken Holman                    mailto:gkholman at
Crane Softwrights Ltd.   
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999   (Fax:-0995)
Website:  XSL/XML/DSSSL/SGML services, training, libraries, products.
Publications:   Introduction to XSLT (3rd Edition) ISBN 1-894049-00-4
Next instructor-led training:   MS'99 1999-08-16  MT'99 1999-12-05/06

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list