RE: [xsl] FW: transformation fails with Xalan, works in XMLspy

Subject: RE: [xsl] FW: transformation fails with Xalan, works in XMLspy
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 5 Aug 2009 10:53:51 +0100
> I am using XSLT 1.0 with Xalan Java-version 2.7.1.
> What I am trying to do is to exchange the text nodes of the
> processed XML with text nodes with the same id from a second
> XML document.
> My XSL:
> <xsl:template match="*[not(parent::*/text())]">

That's matching elements that don't have any text node siblings. It's
working in XMLSpy because the XMLSpy processor (incorrectly) strips
whitespace text nodes from the source. To get the same behaviour in Xalan
use <xsl:strip-space elements="*"/>.

(Though I haven't tried to understand your logic: it's a very strange
condition to be testing).


Michael Kay

>         <xsl:variable name="hid" select="@hid"/>
>         <xsl:element name="{name()}">
>             <xsl:copy-of select="@*"/>
>             <xsl:for-each
> select="document('out/_EL_task_installation.xml')/TRANSLATION/
> *[@hid=$hid]">
>                 <xsl:copy-of select="*| text()"/>
>             </xsl:for-each>
>             <xsl:apply-templates select="*[not(parent::*/text())]"/>
>         </xsl:element>
>     </xsl:template>
> </xsl:stylesheet>
> The transformation works fine in XMLSpy, however when using a
> batch file to transform with Xalan, the transformation
> results in nearly empty document like this:
> <?xml version="1.0" encoding="UTF-8"?><task hid="d0e2"/>
> There is no error message. I guess this line is the problem:
>             <xsl:for-each
> select="document('out/_EL_task_installation.xml')/TRANSLATION/
> *[@hid=$hid]">
> Any ideas?
> Thanks
> ______________________________________________________
> GRATIS f|r alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
> Jetzt freischalten unter

Current Thread