![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - RE: [xsl] Different results of format-date() when using empty seq. or omitting args for lang/cal/country args [Thread Next] Re: [xsl] For-each-group problemTo: Date: 10/2/2006 3:40:00 PM On 10/2/06, Mario Madunic <hajduk@xxxxxxxx> wrote: Can't seem to get the results I want using for-each-group Using Saxon 8 and XSLT 2 Sample doc <root> <body> <heading> <p></p> <p></p> <li></li> <div> <p></p> <p></p> </div> <li></li> <div> <p></p> <p></p> <p></p> <p></p> </div> <li></li> <div> <p></p> <p></p> </div> <p></p> <p></p> <footer></footer> <body> </root> I want it to look like the following <root> <body> <heading> <p></p> <p></p> <li> <div> <p></p> <p></p> </div> </li> <li> <div> <p></p> <p></p> <p></p> <p></p> </div> </li> <li> <div> <p></p> <p></p> </div> </li> <p></p> <p></p> <footer></footer> <body> </root> I've followed the example in MK's XSLT 2 book page # 297 and haven't achieved the same results. I have a bunch of elements that this must be done to. Firstly your samples aren't well-formed XML, which doesn't help. However... you don't need grouping here, just a variation of the identity transform: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="heading"> <xsl:copy> <xsl:apply-templates select="*[not(self::div)]"/> </xsl:copy> </xsl:template> <xsl:template match="li"> <xsl:copy> <xsl:apply-templates select="following-sibling::*[1][self::div]"/> </xsl:copy> </xsl:template> </xsl:stylesheet> produces: <root> <body> <heading> <p/> <p/> <li> <div> <p/> <p/> </div> </li> <li> <div> <p/> <p/> <p/> <p/> </div> </li> <li> <div> <p/> <p/> </div> </li> <p/> <p/> </heading> <footer/> </body> </root> cheers andrew | ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
