|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Improving XSLT code
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.
...
<!ENTITY % ENT_CITY "CITY_VALUE
(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
function).
I hope this helps.
............... Ken
T:\malliks>type test.xml
<?xml version="1.0"?>
<!--
<!ENTITY % ENT_CITY "CITY_VALUE
(Chicago|SanFrancisco|NewYork|Detroit) #IMPLIED">
<!ELEMENT CITY EMPTY>
<!ATTLIST CITY %ENT_CITY;>
<!ELEMENT METROS EMPTY>
<!ATTLIST METROS %ENT_CITY;>
-->
<test>
<METROS CITY_VALUE="SanFrancisco"/>
<CITY CITY_VALUE="NewYork"/>
</test>
T:\malliks>type test.xsl
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<xsl:template match="CITY">
<xsl:call-template name="city"/>
</xsl:template>
<xsl:template match="METROS">
<xsl:call-template name="city"/>
</xsl:template>
<xsl:template name="city">
<!--City-->
<xsl:variable name="varcity" expr = "@CITY_VALUE"/>
<xsl:choose>
<xsl:when test="$varcity='Chicago'">
<xsl:text>C</xsl:text>
</xsl:when>
<xsl:when test="$varcity='SanFrancisco'">
<xsl:text>S</xsl:text>
</xsl:when>
<xsl:when test="$varcity='NewYork'">
<xsl:text>N</xsl:text>
</xsl:when>
<xsl:when test="$varcity='Detroit'">
<xsl:text>D</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
T:\malliks>call xsl test.xml test.xsl test.txt
T:\malliks>type test.txt
S
N
T:\malliks>
--
G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
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
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








