Hi,

    I'm having trouble processing the end of line character (&#x20)
with XSLT. Here is my testcase :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
        <!ENTITY EOL "&#x0A;">
        <!ENTITY TAB "&#x09;">
        <!ENTITY SPACE "&#x20;">
]>
<xsl:stylesheet 
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
        xmlns:exsl-common="http://exslt.org/common";
        xmlns:exsl-str="http://exslt.org/strings";
        version="1.0"
        extension-element-prefixes="exsl-common exsl-str"
        exclude-result-prefixes="exsl-common exsl-str">

        <xsl:variable name="var1" xml:space="preserve">
<a>
x<!-- The content of "a" is &EOL;x&EOL -->
</a>
        </xsl:variable>

        <xsl:variable name="var2" xml:space="preserve">
<a>
x <!-- The content of "a" is &EOL;x&SPACE;&EOL -->
</a>
        </xsl:variable>

        <xsl:template match="/">
                <xsl:if 
test="contains(exsl-common:node-set($var1)/a/text(),'&EOL;')">
                        <xsl:message>Contains EOL(1)</xsl:message>
                </xsl:if>
                <xsl:if 
test="contains(exsl-common:node-set($var2)/a/text(),'&EOL;')">
                        <xsl:message>Contains EOL(2)</xsl:message>
                </xsl:if>
        </xsl:template>

</xsl:stylesheet>

    Xalan 2.6.3 (actually its the Xalan bundled with Rational Software
Architect, which is XML4J) produces the following.

file:///D:/xsl/code/testcases/Entities.xsl; Line #32; Column #17;
Contains EOL(2)
<?xml version="1.0" encoding="UTF-8"?>

    I get similar results with Saxon 6.5.4 - which indicates that this
is probably not a Xalan bug. But in that case, I'm mystified as to why
the EOL chars in $var1 are invisible. Any ideas?

Thanks,
Kenneth

Reply via email to