Subject: Re: Problem with Xpath
From: ms <mina_hurray@xxxxxxxxx>
Date: Wed, 13 Dec 2006 11:02:32 -0800 (PST)
|
I am sorry , I meant //info/comp and //info/prod, and
there are no "value-of" on a any set of nodes.
How do I make it match all the "comp" and "prod"
elements under "l1" and not just the first set?
--- "CyberSpace Industries 2000 Inc."
<csi2000@xxxxxxxxxxxxxxx> wrote:
> My first guess is that the following statement is
> always false
> <xsl:if test="//info/company=$company and
> //info/product=$product">
>
> since there is no children of info named company or
> product. Did you mean
> comp and prod?
>
> If you are getting only the first of a set of nodes
> - check your other
> templates to make sure you aren't using a "value-of"
> on a set of nodes... in
> which case all other nodes other than the first (in
> document order) are
> ignored.
>
> Cheers...Hugh
> CyberSpace Industries 2000 Inc.
> XML Training and Consulting
>
> ----- Original Message -----
> From: "ms" <mina_hurray@xxxxxxxxx>
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> Sent: Wednesday, December 13, 2006 1:39 PM
> Subject: Problem with Xpath
>
>
> > Hi all:
> >
> > I am having issues with Xpath.
> >
> > My xml looks like this:
> >
> > <root>
> >
> > <l1>
> > <text>
> > <para>First level</para>
> > </text>
> > <info>
> > <comp>Kmart</comp>
> > <prod>Shoes</prod>
> > </info>
> > <l2>
> > <text>
> > <para>Second level .</para>
> > </text>
> > </l2>
> > </l1>
> > <l1>
> > <text>
> > <para>Second level</para>
> > <info>
> > <comp>Kmart</comp>
> > <prod>Shoes</prod>
> > </info>
> > </text>
> > </l1>
> > <l1>
> > <text>
> > <para>Third level</para>
> > <info>
> > <comp>Target</comp>
> > <prod>Pen</prod>
> > </info>
> > </text>
> > </l1>
> > </root>
> >
> > Now, I have logic in my style sheet which says
> that
> > only if element <l1> contains element <info>, then
> > if <comp> and <prod> values match the values being
> > passed to the style sheet through two other
> parameters
> > <company> and <product> , then display l1 ,
> otherwise
> > do not display l1.
> >
> > The XSLT is :
> >
> >
> > <xsl:template match="l1">
> > <xsl:choose>
> > <xsl:when test="//info">
> > <xsl:if test="//info/company=$company and
> > //info/product=$product">
> > <fo:list-block>
> > <fo:list-item>
> > <fo:list-item-label>
> > <fo:block>
> > <xsl:number format="1"/>
> > </fo:block>
> > </fo:list-item-label>
> > <fo:list-item-body>
> > <fo:block>
> > <xsl:apply-templates/>
> > </fo:block>
> > </fo:list-item-body>
> > </fo:list-item>
> > </fo:list-block>
> > </xsl:if>
> > </xsl:when>
> > <xsl:otherwise>
> > <!-- Do something else-->
> > </xsl:otherwise>
> > </xsl:choose>
> > </xsl:template>
> >
> > So, if I have passed $company="KMart" and
> > $product="Shoes" on the style sheet, then the
> expected
> > output is:
> >
> > 1 First
> > 2 Second
> >
> > Instead, it matches only the company and product
> for
> > the first level and stops there. Can you please
> tell
> > me what is wrong with the xpath to company and
> product
> > on the style sheet?
> >
> > Thank you in advance for your help.
> >
> >
> >
> >
> >
> >
>
____________________________________________________________________________________
> > Do you Yahoo!?
> > Everyone is raving about the all-new Yahoo! Mail
> beta.
> > http://new.mail.yahoo.com
>
>
____________________________________________________________________________________
Need a quick answer? Get one in minutes from people who know.
Ask your question on www.Answers.yahoo.com
| Current Thread |
- Problem with Xpath
- ms - 13 Dec 2006 18:39:29 -0000
- <Possible follow-ups>
- cknell - 13 Dec 2006 19:06:07 -0000
- ms - 13 Dec 2006 20:48:58 -0000
- cknell - 13 Dec 2006 21:00:40 -0000
|
|