Re: [xsl] XPath question.

Subject: Re: [xsl] XPath question.
From: Rob Rohan <me@xxxxxxxxxxxx>
Date: 06 May 2003 19:32:50 -0700
> 	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,

> 	As it is, I can't get the inserted.text to 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"?>
<xsl:stylesheet version="2.0"
	<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
	<xsl:template match="/">
		<xsl:if test="not(starts-with(//title, 'Q') or starts-with(//episode,
        		<xsl:call-template name="inserted.text"/>
	<xsl:template name="inserted.text">
		<xsl:value-of select="." />

    _/  _/_/    _/_/_/
   _/_/   _/ _/     _/
  _/               _/
 _/             _/
_/          _/_/_/_/

 XSL-List info and archive:

Current Thread