xsl-list
[Top] [All Lists]

RE: Select entire XML doc

2003-03-04 09:53:15
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(_at_)mulberrytech(_dot_)com
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



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