RE: [xsl] Understanding XPath contains function

Subject: RE: [xsl] Understanding XPath contains function
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 30 Jul 2006 22:25:56 +0100
In XPath 1.0:

(A = 'B') is true if *any* A is equal to 'B' 

contains(A, 'B') is true if *the first* A contains 'B' as a substring.

So if it's the second item in the set A that is equal to 'B', A='B' will be
true but contains(A, 'B') will be false.

XPath 2.0 makes it an error for the first argument of contains to be a
sequence of several items.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Ferdinand Soethe [mailto:xsl-list@xxxxxxxxxx] 
> Sent: 30 July 2006 13:07
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Understanding XPath contains function
> 
> I'm confused by the difference in results when running the 
> following xpath expressions against the same document:
> 
> /common/Oberbereich[6][.//@Kursart='Bildungsurlaub']
> 
> will give me Oberbereich[6] as a result as expected (because 
> it has child elements that have a Kursart-Attribute of that value.
> 
> While
> /common/Oberbereich[6][contains(.//@Kursart,'Bildungsurlaub')]
> will not give me any results where it should at least give me 
> the same or more results that the previous expression, should it not?
> 
> Any hints much appreciated.
> 
> --
> Ferdinand Soethe

Current Thread