[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Testing Text


Subject: Re: [xsl] Testing Text
From: "Ganesh Babu N" <nbabuganesh@xxxxxxxxx>
Date: Fri, 9 Jan 2009 11:11:56 +0530

Dear All,

I have tried with the following code. The following are the results. I
am using saxon9.

<xsl:template match="*">
     <xsl:if test="contains(text(),'@')">@ found in <xsl:value-of
select="name(.)"/></xsl:if>

error message :
"XPTY0004: A sequence of more than one item is not allowed as the
first argument of
  contains() ("", "", ...)  in built-in template rule"

or

<xsl:template match="text()">
     <xsl:if test="contains(.,'@')">@ found in <xsl:value-of
select="name(..)"/></xsl:if>

Warning Message:
Warning: on line 1967 of npg.xsl:
  The attribute axis starting at a text node will never select anything
Warning: on line 1967 of npg.xsl:
  The child axis starting at a text node will never select anything

and there is no output from this code.

Please suggest what should i do.

Regards,
Ganesh

On Thu, Jan 8, 2009 at 4:49 PM, David Carlisle <davidc@xxxxxxxxx> wrote:
>
>
>> I got a solution for this with the expression contains(text()[1],
>
> but that says only test the first text node child of any element so if
> you have
>
> <x>abc <b>...</b> xyz</x>
>
> then it will look in abc for an @ but not in xyz.
>
> Correct code has already been posted in this thread.
>
> David
>
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs.
> ________________________________________________________________________


Current Thread