I have a problem, and no doubt the answer is simple...
I have the following XSLT snippet:
<xsl:if test="starts-with(//title, 'Q') or starts-with(//episode, 'Q')">
<xsl:call-template name="inserted.text"/>
</xsl:if>
The document structure it applies to is like so:
<encyclopedia>
<entry>
<title>A Title</title> -or- <episode>An episode
name.</episode>
</entry>
</encyclopedia>
The <xsl:if/> referenced above happens at the <encyclopedia/> level.
I just want to call the template "inserted.text" if the title or
episode
do not start with the letter 'Q'.
if it does *not* start with the letter Q? So you want to negate the
test="" like: "not(starts-with(//title, 'Q') or starts-with(//episode,
'Q'))"
As it is, I can't get the inserted.text to appear...no matter what I
do.
Am I walking down the node tree incorrectly?
That depends on what you are going for, if the fragement is always going
to look like what you posted, you might want to do:
<xsl:if test="not(starts-with(entry/title, 'Q') or
starts-with(entry/episode, 'Q'))">
+=== full sheet that will run with your sample
<?xml version="1.0" encoding="utf-8"?>
<!--
Author:
File:
Date:
Purpose:
-->
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:if test="not(starts-with(//title, 'Q') or
starts-with(//episode,
'Q'))">
<xsl:call-template name="inserted.text"/>
</xsl:if>
</xsl:template>
<xsl:template name="inserted.text">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
--
_/ _/_/ _/_/_/
_/_/ _/ _/ _/
_/ _/
_/ _/
_/ _/_/_/_/
http://treebeard.sourceforge.net
http://ashpool.sourceforge.net
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list