xsl-list
[Top] [All Lists]

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

2007-03-25 05:58:49

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(_at_)yahoo(_dot_)com(_dot_)br] 
Sent: 25 March 2007 04:56
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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 graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>