Subject: RE: [xsl] selecting nodes - syntax? From: "Denis Kranjcec" <denis.kranjcec@xxxxxx> Date: Mon, 15 Oct 2001 12:47:45 +0200 |
Thanks Oleg :-) That help's a lot. Denis -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Oleg Tkachenko Sent: Monday, October 15, 2001 12:09 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] selecting nodes - syntax? Hello Denis! Try the following: <xsl:key name="akey" match="list/a" use="@code"/> <xsl:template match="b"> <xsl:variable name="selected"> <xsl:for-each select="a"> <xsl:sort select="key('akey', @code)/@priority" order="ascending" data-type="number"/> <xsl:if test="position() = 1"> <xsl:value-of select="@code"/> </xsl:if> </xsl:for-each> </xsl:variable> selected[<xsl:value-of select="$selected"/>] </xsl:template> Denis Kranjcec wrote: > Hello everyone. > > I have problem with syntax when I want to select nodes. > Here is example XML: > > <main> > <list> > <a code="1" priority="10" .../> > <a code="2" priority="7" .../> > <a code="3" priority="8" .../> > <a code="4" priority="3" .../> > <a code="5" priority="5" .../> > </list> > <elem> > <b> > ... > <a code="1"/> > <a code="3"/> > ... > </b> > <b> > ... > <a code="4"/> > <a code="5"/> > <a code="3"/> > ... > <!-- hundreds of elements <b> --> > </b> > ... > </elem> > </main> > > Every element <a> have lots of attributes (XSL-FO properties). There is cca. > 20 different elements <a>. > Element <b> could have several elements <a>. Because of hundreds of elements > <b> I don't want that there is copy of <a> in every <b>. I would like to > have only attribute @code in element <a> that is same as @code in <a> with > all properties. > I want to select, for every <b> element, element <a> with lowest priority. > > I tried with something like this: > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:template match="/"> > <xsl:apply-templates select="main/elem/b"/> > </xsl:template> > > <xsl:template match="b"> > <xsl:variable name="selected"> > <xsl:for-each select="/main/a[@code = ./a/@code]"> <!-- I guess that > problem is that node . isn't <b> --> > <xsl:sort data-type="number" select="@priority" order="ascending"/> > <!-- debug --> debug[<xsl:value-of select="."></xsl:value-of>] > <xsl:if test="position()=1"> > <xsl:value-of select="./@code"/> > </xsl:if> > </xsl:for-each> > </xsl:variable> > selected[<xsl:value-of select="$selected"/>] > </xsl:template> > </xsl:stylesheet> > > > I don't know syntax to select element <a> with all properties. > > What is correct syntax? > > Any help is appreciated. > Thanks in advance, > Denis > > P.S. > Sorry for my lousy english :-) > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > -- Oleg Tkachenko Multiconn International, Israel 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] selecting nodes - syntax?, Oleg Tkachenko | Thread | [xsl] Suggestion for converting fro, Nicholas Waltham |
RE: [xsl] Template inside a Templat, Michael Kay | Date | [xsl] Need some help urgently, Mailer Mailer |
Month |