RE: [xsl] org.apache.xpath.objects.XRTreeFrag error

Subject: RE: [xsl] org.apache.xpath.objects.XRTreeFrag error
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 25 Mar 2007 13:58:24 +0100
You're doing

                <xsl:with-param name="node">
                    <xsl:copy-of select="$comp1"/>
                </xsl:with-param>

There's no need to copy $comp1 into a new result tree fragment, you can pass
the supplied value directly to the called template. Use

<xsl:with-param name="node" select="$comp1"/>

You make the same mistake again with:

                          <xsl:with-param name="node">
>                             <xsl:copy-of select="."/>
>                         </xsl:with-param>

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Lepoldo Melo [mailto:leopoldosmj@xxxxxxxxxxxx]
> Sent: 25 March 2007 04:56
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] org.apache.xpath.objects.XRTreeFrag error
>
> Hi everybody,
>
> I'm trying to use the XSL code bellow with Xalan 2.5.2 and
> I'm getting the error described at
> http://www.biglist.com/lists/xsl-list/archives/200505/msg00391
.html. The XRTreeFrag error is on line "".
>
> As you can see, I can't avoid to use a tree fragment. Did
> anyone have this problem? How can I solve it?
>
>     <xsl:template name="check_identical">
>         <xsl:param name="comp1"/>
>         <xsl:param name="comp2"/>
>         <xsl:variable name="string1">
>             <xsl:call-template name="stringify">
>                 <xsl:with-param name="node">
>                     <xsl:copy-of select="$comp1"/>
>                 </xsl:with-param>
>             </xsl:call-template>
>         </xsl:variable>
>         <xsl:variable name="string2">
>             <xsl:call-template name="stringify">
>                 <xsl:with-param name="node">
>                     <xsl:copy-of select="$comp2"/>
>                 </xsl:with-param>
>             </xsl:call-template>
>         </xsl:variable>
>         <xsl:value-of select="$string1=$string2"/>
>     </xsl:template>
>
>     <xsl:template name="stringify">
>         <xsl:param name="node"/>
>         <xsl:for-each select="$node/*/*">
>             <xsl:choose>
>                 <xsl:when test="boolean(local-name())">&lt;
>                     <xsl:value-of select="local-name()"/>
>                     <xsl:variable name="pos" select="position()"/>
>                     <xsl:for-each select="@*">
>                         <xsl:text> </xsl:text>
>                         <xsl:value-of
> select="local-name()"/>="<xsl:value-of select="."/>"</xsl:for-each>
>                     <xsl:call-template name="stringify">
>                         <xsl:with-param name="node">
>                             <xsl:copy-of select="."/>
>                         </xsl:with-param>
>                     </xsl:call-template>&lt;/
>                     <xsl:value-of
> select="local-name()"/>&gt;</xsl:when>
>                 <xsl:otherwise>
>                     <xsl:value-of select="normalize-space(.)"/>
>                 </xsl:otherwise>
>             </xsl:choose>
>         </xsl:for-each>
>     </xsl:template>
>
>
> Thanks.
> Leopoldo Melo
>
>
>
>
>
>
> __________________________________________________
> Fale com seus amigos  de graga com o novo Yahoo! Messenger
> http://br.messenger.yahoo.com/

Current Thread