Subject: Re: [xsl] Re: Adding hierarchy From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Mon, 13 Oct 2003 07:07:59 -0700 (PDT) |
> Thank you Dimitre. I see that I didn't give you enough info. > Your solution is close but I get > <lineGroup type="stanza"/> > when blankLine does not precede a lineGroup. You mean: does not *immediately* precede a line group? If so, we need a slight change to reflect this modified requirement: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:key name="kLGroup" match="lineGroup" use="generate-id(preceding-sibling::*[1])"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="blankLine[following-sibling::*[1][self::lineGroup]]"> <lineGroup type="stanza"> <xsl:copy-of select="key('kLGroup', generate-id())"/> </lineGroup> </xsl:template> <xsl:template match="lineGroup[preceding-sibling::*[1][self::blankLine]]"/> </xsl:stylesheet> When this transformation is applied on your source.xml: <text> <blankLine/> <lineGroup> <line> </line> <line> </line> </lineGroup> <lineGroup> <line> </line> <line> </line> <lineGroup> <line> </line> <line> </line> </lineGroup> <line> </line> </lineGroup> <p/> <blankLine/> <p> This also happens. But does not produce a stanza.</p> <p/> <p/> <p/> <lineGroup> <line> Make sure there is no stanza here</line> <line> </line> <lineGroup> <line> </line> <line> </line> </lineGroup> <line> </line> </lineGroup> <p/> <blankLine/> <lineGroup> <line> </line> <line> </line> </lineGroup> <lineGroup> <line> </line> <line> </line> <lineGroup> <line> </line> <line> </line> </lineGroup> <line> </line> </lineGroup> <p/> </text> the wanted result is produced: <text> <lineGroup type="stanza"> <lineGroup> <line/> <line/> </lineGroup> </lineGroup> <lineGroup> <line/> <line/> <lineGroup> <line/> <line/> </lineGroup> <line/> </lineGroup> <p/> <blankLine/> <p> This also happens. But does not produce a stanza.</p> <p/> <p/> <p/> <lineGroup> <line> Make sure there is no stanza here</line> <line/> <lineGroup> <line/> <line/> </lineGroup> <line/> </lineGroup> <p/> <lineGroup type="stanza"> <lineGroup> <line/> <line/> </lineGroup> </lineGroup> <lineGroup> <line/> <line/> <lineGroup> <line/> <line/> </lineGroup> <line/> </lineGroup> <p/> </text> ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: Adding hierarchy, Jim_Albright | Thread | XSLT 2.0 Typing (Was: RE: [xsl] Re:, Dimitre Novatchev |
[xsl] generation of flat file from , Challa, Harsha | Date | Re: [xsl] match text node, Dimitre Novatchev |
Month |