|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: number continuation problem
Hi Andrew, > A new twist is that there can be many <elseif>'s to an <if> > (naturally enough), so the data can take the form: > > <if/> > <elseif/> > <elseif/> > <elseif/> > <if/> > <elseif/> > > Is there a neat trick of getting all following-siblings while they > are of a certain name (as if they are processed linearly). In XSLT 1.0, use a key: index all the <elseif> elements by their immediately preceding <if> element: <xsl:key name="elseifs" match="elseif" use="generate-id(preceding-sibling::if[1])" /> Then, when on an <if> element, you can get all the related <elseif> elements with: key('elseifs', generate-id(.)) Or you can just do it with: following-sibling::elseif[generate-id(preceding-sibling::if[1]) = generate-id(current())] Or you can step through them one-by-one recursively. Note that your solution: following-sibling::elseif[not(preceding-sibling::if[2])] collects together all the <elseif> elements that have 0 or 1 preceding sibling <if> elements. So, for example, if you're on the second <if> of the example above, it won't select the following <elseif> because it does have a second preceding sibling <if> element. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






