RE: [xsl] Select entire XML doc

Subject: RE: [xsl] Select entire XML doc
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 04 Mar 2003 11:53:15 -0500
Brian,

At 07:03 PM 3/3/2003, you wrote:
Remember that the transformation works on a
parsed XML input tree--not the raw document.  So any child of the root node
that isn't an element is removed, and if there is more than one child
element of the root node, the document is rejected by the parser as being
malformed XML.

That's only partly so: IIUC the existence of the root node (as distinguished from the document element or "root element", which you shouldn't call it in an XSLT context ;-) is in part so that non-element siblings of the document element (such as, for example, stylesheet PIs, that commonly live at the top of the document before the document element) have a place in the model. They are not removed by the parser.


Given the root node / as context, <xsl:copy-of select="*"/> fails to copy these nodes (comments and PIs) since it only selects elements (of which, you are correct, there will be exactly one). But select="node()" picks up these other nodes. <xsl:copy-of select="*"/> will of course pick up PIs and comments that are *inside* the document element (since it's a deep copy), which may be part of the confusion.

Cheers,
Wendell


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================


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



Current Thread