Jordan S. Jones wrote:
I am trying to call a template based off of the value of an attribute.. I
am probably going about it in a dumb manner..
Here is my xml:
<?xml version="1.0" ?>
<document>
<description>Test number one</description>
<content>
<module id="one">
<paragraph>
<media type="img">image.jpg</media>
<title>This is the title</title>
blah blah blah blah blah blah blah blah blah.
</paragraph>
</module>
</content>
</document>
Here is the xslt:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "html" encoding="Windows-1252" />
<xsl:template match="/">
<html>
<xsl:if test="document/description">
<title><xsl:value-of select="document/description" /></title>
</xsl:if>
<body>
<xsl:if test="document/content">
<xsl:apply-templates select="document/content" />
</xsl:if>
</body>
</html>
</xsl:template>
<xsl:template match="document/content">
<xsl:apply-templates />
</xsl:template>
So far, so good. You could just say match="content" unless you've
got some other 'content' elements that you need to process differently.
<xsl:template match="module">
<xsl:apply-templates select="@id" />
</xsl:template>
<xsl:template match="one">
This is module one.
</xsl:template>
You meant (in place of both of these)
<xsl:template match="module[(_at_)id='one']">
<xsl:text>This is module one.</xsl:text>
</xsl:template>
The xsl:text element is just there to keep the whitespace around the text from
being considered part of the text.
- Mike
____________________________________________________________________________
mike j. brown | xml/xslt: http://skew.org/xml/
denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list