Subject: RE: [xsl] Putting parameter into XPATH expression From: "Evan Lenz" <elenz@xxxxxxxxxxx> Date: Fri, 22 Jun 2001 12:54:47 -0700 |
Remove the apostrophes around the arguments. So that, instead of this: <xsl:with-param name="Position" select="'2'"/> You have this: <xsl:with-param name="Position" select="2"/> You want to pass a number, but you're passing a string instead. That's why +0 worked--it automatically converted the string to a number. b['2'] or b['anyString'] will always return true; it won't give you a positional predicate. Instead, you want b[2] Hope this helps, Evan Lenz XYZFind Corp. > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of MacEwan, > James (Information Services) > Sent: Friday, June 22, 2001 12:24 PM > To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx' > Subject: [xsl] Putting parameter into XPATH expression > > > Hi, > > In the code extract below, I always get the result "OneOneOne" instead of > "OneTwoThree" which I am expecting. > > I found a work around (based on my previous experience writing compilers) > that gets XSL processor to do what I want: "<xsl:value-of > select="a/b[$Position + 0 ]/c"/>" > > Can someone tell me a better (more correct) way to do this? > > XML ------------------ > <?xml version="1.0" encoding="ISO-8859-1"?> > <a> > <b> <c>One</c> </b> > <b> <c>Two</c> </b> > <b> <c>Three</c> </b> > </a> > > > In my XSL, I do the following to write out the words One, Two and Three > --------------- > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:output method="text"/> > > <xsl:template match="/"> > <xsl:call-template name="Jump"> > <xsl:with-param name="Position" > select="'1'"/> > </xsl:call-template> > > <xsl:call-template name="Jump"> > <xsl:with-param name="Position" > select="'2'"/> > </xsl:call-template> > > <xsl:call-template name="Jump"> > <xsl:with-param name="Position" > select="'3'"/> > </xsl:call-template> > </xsl:template> > > <xsl:template name="Jump"> > <xsl:param name="Position"/> > > <xsl:value-of select="a/b[$Position ]/c"/> > > </xsl:template> > > Thanks, > > > -James MacEwan > Software Developer > Investors Group Inc. > mailto:James.MacEwan@xxxxxxxxxxxxxxxxxx > v: (204) 956-8515 > f: (204) 943-3540 > > "I don't know, lad. It's like no cheese I've ever tasted." -- Wallace > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Putting parameter into XP, Wendell Piez | Thread | Re: [xsl] Putting parameter into XP, Thomas B. Passin |
[xsl] XSL : Selecting nodes, Ram San | Date | Re: [xsl] Putting parameter into XP, Thomas B. Passin |
Month |