[Home] [By Thread] [By Date] [Recent Entries]
Hi,
Tempore 01:12:30, die 09/13/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Matthew Fonda <mfonda@xxxxxxxxxx>: there are multiple div's in each document, but only the first one contains an h1, and the I am trying to get the text of the p following the h1, but before the br in the p, so <p><i><b>Excerpt from </b></i><b>Journal of Theodore Upson</b><br/><b>Written in April 1861; originally published in 1943</b></p> would become <p>Excerpt from Journal of Theodore Upson</p> XSLT works with elements, not tags. Here's one type of solution. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*" /> </xsl:copy> </xsl:template> <xsl:template match="div/p[preceding::*[1][self::h1]]"> <xsl:copy> <xsl:apply-templates select="@*" /> <xsl:if test="br"> <xsl:copy-of select="br[1]/preceding-sibling::node()/descendant-or-self::text()"/> </xsl:if> <xsl:if test="not(br)"> <xsl:value-of select="."/> </xsl:if> </xsl:copy> </xsl:template> </xsl:stylesheet> regards, -- Joris Gillis (http://users.telenet.be/root-jg/me.html) B+Et ipsa scientia potestas estB; - Francis Bacon , Meditationes sacrae
|

Cart



