Re: XSLT2: A sequence of more than one item is not al
Ah, thanks for the explanation, that worked. Much appreciated, Xiaocun --- Colin Paul Adams <colin@xxxxxxxxxxxxxxxxxx> wrote: > >>>>> "Xiaocun" == Xiaocun Xu <xiaocunxu@xxxxxxxxx> > writes: > > Xiaocun> Hi, I am having problem with contains() > in XSLT2 > Xiaocun> (Saxon8.5.1). The following code is > checking if the > Xiaocun> classname contains the word > "notification": > > Xiaocun> <xsl:variable name="vKeyword" > select="notification"/> > Xiaocun> <xsl:variable name="vClassName" > Xiaocun> select="Class/@classname"/> <xsl:if > Xiaocun> test="contains($vClassName, > $vKeyword)"> <xsl:copy-of > Xiaocun> select="."/> </xsl:if> > > Xiaocun> XSLT2 using Saxon8.5.1 returns the > following error: > Xiaocun> XPTY0004: A sequence of more than one > item is not allowed > Xiaocun> as the first argument of contains() > > Xiaocun> Using XSLT 1, Saxon8.5.1 returns no > error. > > That's because in XPath 1.0 compatibility mode, only > the first item in > the sequence will be considered. > > Xiaocun> What does that error mean? > > The error means that the expression Class/@classname > contains more > than one item. This would be the case if the context > node has multiple > Class children. > > Xiaocun> How do I check if an > Xiaocun> attribute contains a keyword in XSLT2? > > Well, you could just change: > > <xsl:variable name="vClassName" > select="Class/@classname"/> > > to > > <xsl:variable name="vClassName" > select="Class/@classname"/> > > and you will then get the same behaviour as XSLT > 1.0. > > But I suspect this isn't what you really want. > Perhaps you want to > check every item in Class/@classname, in which case > you might want an > xsl:for-each loop over select="Class" and call > contains(@classname, $vKeyword) > from within the loop. > -- > Colin Adams > Preston Lancashire > > __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format