Subject: Re: [xsl] 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: [xsl] 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Problem with Xpath, CyberSpace Industrie | Thread | RE: [xsl] Problem with Xpath, Michael Kay |
RE: [xsl] XSL limitations?, cruscio\@libero\.it | Date | RE: [xsl] Problem with Xpath, cknell |
Month |