Subject: RE: text() children From: "Pawson, David" <DPawson@xxxxxxxxxxx> Date: Mon, 20 Dec 1999 08:56:41 -0000 |
Steve Tinney wrote: > >I dunno. I tried Mike Kay's hint with priorities but couldn't >make it fly. I think the following does what David asks for >in the statement below; can't help feeling there should be >something more elegant, though, and I bet it doesn't really >handle the real life cases .... > > Steve > >--- ><xsl:stylesheet version="1.0" >xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > ><xsl:template match="/"> > <xsl:apply-templates/> ></xsl:template> > ><xsl:template match="div"> > <xsl:for-each select="./node()"> > <xsl:choose> > <xsl:when test="name()='p'"> > <xsl:copy-of select="."/> > </xsl:when> > <xsl:otherwise> > <xsl:if test="position()=1"> > <p> > <xsl:value-of select="."/> > <xsl:call-template name="copy-non-p"/> > </p> > </xsl:if> > </xsl:otherwise> > </xsl:choose> > </xsl:for-each> ></xsl:template> > ><xsl:template name="copy-non-p"> > <xsl:param name="index" select="1"/> > <xsl:variable name="node" >select="./following-sibling::node()[$index]"/> > <xsl:if test="not(name($node)='p')"> > <xsl:apply-templates select="$node"/> > <xsl:call-template name="copy-non-p"> > <xsl:with-param name="index" select="$index+1"/> > </xsl:call-template> > </xsl:if> ></xsl:template> > ><xsl:template match="a"> > <xsl:copy-of select=".|@*"/> ></xsl:template> > ><xsl:template match="p"> > <xsl:copy-of select="."/> ></xsl:template> > ></xsl:stylesheet> >--- Now there's interesting! Inserted your code Steve, and xt gave me java.lang.StackOverflowError Never had that one before! Did it work on the snippet I posted Steve? regards, DaveP XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: text() children, Kay Michael | Thread | RE: text() children, Pawson, David |
ANN: 4XSLT 0.8.0 and 4XPath 0.8.0, Uche Ogbuji | Date | Xmas Tree, uche . ogbuji |
Month |