• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Question on XSL

 
Kevin Yun
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Here is example from zvon
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="employee">
<b>
<xsl:value-of select="."/>
</b>
</xsl:template>
<xsl:template match="surname">
<i>
<xsl:value-of select="."/>
</i>
</xsl:template>

</xsl:stylesheet>

The result is "Joe Smith". My question is: the process just processes the first template, or processes both, but the second produces zero output? if not processes the second, comparing the previous example, it should process second??
Thanks for any reply!!
 
Dan Drillich
Ranch Hand
Posts: 1183
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Kevin,
XSLT has several default template rules. One of them is for element and root nodes -
<xsl:template match="*|/">
<xsl:apply-templates/>
<xsl:template>
This rule ensures that the source element and then employee are processed.
For the employee element we have a rule that outputs the data. This template doesn't call templates for its descendants (<xsl:apply-templates/>), so the template surname never gets called.
Cheers,
Dan
 
Kevin Yun
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for your reply, Dan.
Regards
Kevin
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic