[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: node() problem

Subject: Re: node() problem
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 04 Jul 2003 13:27:30 -0400
xslt strip line feed
Steve,

The "empty" node is in your source. It's undoubtedly a whitespace-only text node, which you may be deleting in your post to us, since you only see a line feed or something as apparently innocuous.

Notice your template matches text nodes by virtue of matching "node()". If you don't want text nodes to be processed by the template, don't match them, or if you do but want to skip whitespace-only text nodes, find another way to remove them such as xsl:strip-space.

Actually, XMLSpy is the one with the bug here: MSXML, which XMLSpy uses, strips these nodes by default before the XSLT engine sees the document, contrary to indications in the XSLT spec that suggest this job should be done by the XSLT processor. (By a strict reading of what constitutes legal input to the process they aren't *quite* non-conformant in this, but you can think of it as a bug anyhow. :-)

The other engines are doing the right thing.

match="@*|*" will fix the problem.

Cheers,
Wendell

At 12:00 PM 7/4/2003, you wrote:
Hi all,

A quick question:

I am using this piece of code:

<xsl:template match="@*|node()">
        <xsl:element name="_r">
        <xsl:attribute name="n">
                <xsl:value-of select="name(.)"/>
        </xsl:attribute>
        <ind><xsl:value-of select="."/></ind>
        </xsl:element>
</xsl:template>

To handle all of the tags not explicitly matched.

I would expect that:
<foo>goo</foo>

would be transformed to

<_r n="foo"><ind>goo</ind></_r>

However the output is:
<_r n="foo"><ind>goo</ind></_r>
<_r n=""><ind></ind></_r>

When run through msxml, xltproc, and through Java's xslt engine.
The only engine that produces the correct output is XMLSPY's transformation
engine, but it is simply too slow and not practical to run on large files.

Why is it that there appears to be an "empty" node that get's matched in the
first 3 engines?
Is this correct and do you know a fix for it?

___&&__&_&___&_&__&&&__&_&__&__&&____&&_&___&__&_&&_____&__&__&&_____&_&&_ "Thus I make my own use of the telegraph, without consulting the directors, like the sparrows, which I perceive use it extensively for a perch." -- Thoreau


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.