This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: suppressing default template rules


Hi,

> Please find below the xml and xsl files i am working
> on. What i am trying to do is print the  firstname and
> secondname when the employee element is encountered.
> But now i am getting two sets of values printed. I
> assume that the second set is due to the
> built(default) in template rule for matching all
> text() nodes. If so what could be the way out.
> 
> 
> <?xml version="1.0" ?>
> <custdet>
> <employee>
> </employee>
> 	<firstname>first</firstname>
> 	<lastname>last</lastname>
> </custdet>
> 
> 
> <?xml version="1.0"?> 
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> version="1.0">
> 
> <xsl:template match="firstname">
> <b>
> <xsl:value-of select="."/>
> </b>
> </xsl:template>
> 
> <xsl:template match="lastname">
> <i><b>
> <xsl:value-of select="."/>
> </b></i>
> </xsl:template>
> 
> <xsl:template match="employee">
> <xsl:apply-templates select="//firstname"/>
> <xsl:apply-templates select="//lastname"/>
> </xsl:template>

add

<xsl:template match="custdet">
  <xsl:apply-templates select="employee" />
</xsl:template>

And perhaps it would be wise if you re-evaluated the source document schema to make it a bit more hierarchical. Also, the template for employee is quite inefficient, 

<xsl:template match="employee">
<xsl:apply-templates select="../firstname"/>
<xsl:apply-templates select="../lastname"/>
</xsl:template>

would probably be a better solution.

Santtu

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]