RE: Select entire XML doc
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.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format