RE: text() children

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