Subject: RE: merging unknown nodes From: "Kevin Jones" <kjouk@xxxxxxxxxxx> Date: Wed, 1 Nov 2000 18:22:02 -0400 (EST) |
Jon, This should do the trick, <xsl:for-each select="/PRODUCTS/PRODUCT/OPTIONLIST"> <xsl:if test="not (@name = preceding::OPTIONLIST/@name)"> <xsl:variable name="name" select="@name"/> <OPTIONLIST name="{$name}"> <xsl:copy-of select="/PRODUCTS/PRODUCT/OPTIONLIST/*[../@name=$name]"/> </OPTIONLIST> </xsl:if> </xsl:for-each> Kev. > > > I'm new to XSL(T) and so far I have not been able to think of a way of > achieving the required transform using XSLT and I think I'm going > to have to > result to using some JavaScript or may be some plain old C code :-( > > What I want to be able to do is transform this: > > <PRODUCTS> > <PRODUCT name="bill_product"> > <OPTIONLIST name="fred"> <!-- The first 'fred' option list --> > <OPTION>fred1</OPTION> > <OPTION>fred2</OPTION> > </OPTIONLIST> > <OPTIONLIST name="george"> > <OPTION>george1</OPTION> > </OPTIONLIST> > </PRODUCT> > > <PRODUCT name="bob_product"> > <OPTIONLIST name="fred"> <!-- The second 'fred' optionlist --> > <OPTION>fred3</OPTION> > <OPTION>fred4</OPTION> > </OPTIONLIST> > <OPTIONLIST name="george"> > <OPTION>george2</OPTION> > </OPTIONLIST> > </PRODUCT> > <PRODUCTS> > > Into this: > > <OPTIONLIST name="fred"> <!-- All the 'fred' optionlist's merged into > one --> > <OPTION>fred1</OPTION> > <OPTION>fred2</OPTION> > <OPTION>fred3</OPTION> > <OPTION>fred4</OPTION> > </OPTIONLIST> > <OPTIONLIST name="george"> <!-- All the 'george' optionlist's > merged into > one --> > <OPTION>george1</OPTION> > <OPTION>george2</OPTION> > </OPTIONLIST> > > If the transform was literally just this one case then it wouldn't be a > problem however I want to be able to merge all OPTIONLIST's with the same > name into one OPTIONLIST with that name i.e. I don't want to be limited to > just 'fred' and 'george' option lists but I want to have any number of > different named OPTIONLIST's and have them merged. > > Is this possible using just XSLT (in which case I guess I just > don't have a > good enough understanding yet) or am I going to have to use a procedural > langauge to solve this part? > > TIA, > > Jon Payne > > > TTPCom Ltd Tel: +44 1483 565050 > 20 Nugent Road > Surrey Research Park > Guildford > Surrey GU2 7DF UK http://www.ttpcom.com > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
merging unknown nodes, Jon Payne | Thread | RE: merging unknown nodes, Kay Michael |
Re: Paging using XSLT, Larry_Mason | Date | RE: preceding-sibling context, Eliot, Topher |
Month |