Re: Xpath AndExpr on attribute values?

Subject: Re: Xpath AndExpr on attribute values?
From: Mike Brown <mike@xxxxxxxx>
Date: Tue, 6 Jun 2000 08:07:37 -0600 (MDT)
> Where I have stuff like
> <text>
>  <saying language="en" topic="morals">blah blah blah</saying>
>  ...
> </text>
> 
> I want to do something like
> <xsl:apply-templates select="text/saying[@language='en'] and
> text/saying[@topic='morals']"/>

If you change language="en" to xml:lang="en", you'll be able to use the
lang() XPath function, I believe like this:

<xsl:apply-templates select="text/saying[lang('en') and @topic='morals')]"/>

As mentioned by others, the "and" operator forces the terms on both sides
to be evaluated as booleans, and returns a boolean. However, the problem
isn't that the node-sets are evaluated as booleans, because node-sets can
be considered true or false based on whether or not they are empty. The
problem is that select="foo" requires that foo be a node-set, not a
boolean. When you say select="foo and bar", it is the same as saying
select="true()" or select="false()"; no nodes are identified by that
expression.

   - Mike
____________________________________________________________________
Mike J. Brown, software engineer at         My XML/XSL resources:
webb.net in Denver, Colorado, USA           http://www.skew.org/xml/


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


Current Thread