Subject: Re: [xsl] using identity transform to change <p /> into <p>text</p> From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 8 May 2002 15:33:52 +0100 |
> I have a bunch of files with the following form: I think the simplest and most humane approach is to shoot the author of the documents. However failing that.... This is another case where XSLT2 positional grouping would come in handy, but to do it in XSLT1, the basic idea is <!-- identify children of sections with the section element or preceding p --> <xsl:key name="x" match="section/node()[not(self::p)]" use="generate-id((parent::section|preceding-sibling::p[1])[last()])"/> <xsl:template match="section"> <section> <!-- stuff before the first p --> <xsl:if test="key('x',generate-id(.))"> <p><xsl:apply-templates select="key('x',generate-id(.))"/></p> </xsl:if> <!-- for each p --> <xsl:for-each select="p"> <!-- any content of the p --> <xsl:if test=".!=''"> <xsl:apply-templates select="."/> </xsl:if> <!-- stuff after the p --> <xsl:if test="key('x',generate-id(.))"> <p><xsl:apply-templates select="key('x',generate-id(.))"/></p> </xsl:if> </xsl:for-each> </section> </xsl:template> and then an identity transformation for the rest. untested:-) David _____________________________________________________________________ This message has been checked for all known viruses by Star Internet delivered through the MessageLabs Virus Scanning Service. For further information visit http://www.star.net.uk/stats.asp or alternatively call Star Internet for details on the Virus Scanning Service. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] using identity transform , Michael Kay | Thread | Re: [xsl] using identity transform , Zack Brown |
[xsl] Calling position() on a paren, Graham Ashton | Date | ref:Jarno Elovirta Re: RE: [xsl] Fi, william locksman |
Month |