Subject: RE: [xsl] Select nodes with an attribute but not all the nodes From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 19 May 2006 17:32:49 +0100 |
It's dangerous to use the word "when" in your problem statement because it suggests you are thinking in terms of order of execution. What you've got here is a positional grouping problem: <xsl:for-each-group select="level2" group-starting-with="*[not(@attachpart)]"> <record> <name><xsl:value-of select="name"/></name> <attachingPart> <xsl:value-of select="current-group()[@attachpart]/number"/> </attachingPart> </record> </xsl:for-each> Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: mysrdr-wrk@xxxxxxxxx [mailto:mysrdr-wrk@xxxxxxxxx] > Sent: 19 May 2006 17:06 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Select nodes with an attribute but not all the nodes > > I am making an XML to XML transform using XSLT 2.0 and Saxon > 8B. I need to select certain nodes based on an attribute, > but when I find a node without the attribute I want to stop > selecting nodes even if subsequent siblings have the attribute. > > <level2> > <name>box</name> > <number>1234</number> > </level2> > <level2> > <name attachpart="1">washer</name> > <number>234</number> > </level2> > <level2> > <name attachpart="1">screw</name> > <number>345</number> > </level2> > <level2> > <name attachpart="1">bolt</name> > <number>456</number> > </level2> > <level2> > <name>nameplate</name> > <number>9876</number> > </level2> > <level2> > <name>switch</name> > <number>7654</number> > </level2> > <level2> > <name attachpart="1">screw</name> > <number>345</number> > </level2> > > The washer screw and bold are attaching parts for the box. > I need to output these in an <attachingPart> element. > > <record> > <name>box</name> > <attachingPart>234 345 > 456</attachingPart> > </record> > > Depending on how I approach the code, I get nothing or just > the washer or I get *all* of the parts that have the > attachpart attribute. Is there some way to say stop > selecting attachpart nodes when a level2 doesn't have the > attribute? It's sounds so simple but I'm not getting > anywhere with it. > > I've been reading both Michael and Jeni and checking the > archives. Some things look close but I get the same results. > The answer is probably right in front of my face but I've > been looking at it so long I can't see the forest for the trees. > > Regards, > Hermy
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Select nodes with an attribut, mysrdr-wrk | Thread | RE: [xsl] Select nodes with an attr, mysrdr-wrk |
RE: [xsl] WordML Question and norma, Michael Kay | Date | RE: [xsl] Select nodes with an attr, Patrick Lachance |
Month |