|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: text() children
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








