Re: [xslt] Query for multiple substring-after (before) calls
- From: Daniel Veillard <veillard redhat com>
- To: Rahul <rsharma netd com>
- Cc: The Gnome XSLT library mailing-list <xslt gnome org>
- Subject: Re: [xslt] Query for multiple substring-after (before) calls
- Date: Wed, 3 May 2006 07:53:28 -0400
On Wed, May 03, 2006 at 03:26:10PM +0530, Rahul wrote:
> Daniel,
> Following is the output from xsltproc. Somehow I feel is that root-cause
> of the problem could be in xpath.c in libxml, where whitespaces are
> stripped from xpath.
I don't think so, the problem is that you just didn't even tried to
debug your code, blindingly assuming it was right and that hence my
code was wrong even if I repeatedly asked you to check your code first.
> >>My Input XML is:
> >><?xml version="1.0"?>
> >><precli>
> >> <param>
> >> <param-parent>rahul anil pandey tiwari sharma
> >> babu</param-parent>
> >> </param>
> >></precli>
> >>
> >>My XSLT File is:
> >>
> >><?xml version="1.0"?>
> >><xsl:stylesheet version="1.0"
> >>xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> >>xmlns:str="http://exslt.org/strings" exclude-result-prefixes="str">
> >> <xsl:output method="xml" indent="yes"/>
> >> <xsl:template match="/">
> >> <crypto>
> >> <ike>
> >> <key>
> >> <xsl:for-each
> >> select="/precli/param/param-parent">
> >><xsl:element
> >>name="{normalize-space(substring-before(substring-after(.,'pandey'),' '))}"/>
> >><!-- <xsl:element
> >>name="{normalize-space(substring-before(.,' '))}"/> -->
> >> </xsl:for-each>
> >> </key>
> >> </ike>
> >> </crypto>
> >> </xsl:template>
> >></xsl:stylesheet>
substring-after(.,'pandey') returns the string " tiwari sharma
babu"
which you would have found if you had instrumented the code as I asked for in
my previous mail.
The string starts with ' ' so running
substring-before(substring-after(.,'pandey'), ' ')
returns an empty string, which is perfectly normal according to the definition
of those operations: you ask for everything before the first space, the string
starts with a space, so you get an empty string:
http://www.w3.org/TR/xpath#function-substring-before
trivially searching for 'pandey ' first eliminates the leading space and
avoid an empty string.
In the future please debug your code before assuming my code is broken,
and follow the instructions that I give instead of just pushing the problem
at me, being forced to point you publicly to your mistakes is not something
I enjoy, I would rather spend my time on something else.
Thank you in advance,
Daniel
--
Daniel Veillard | Red Hat http://redhat.com/
veillard redhat com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]