[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Select entire XML doc


Subject: RE: [xsl] Select entire XML doc
From: "Lars Huttar" <lars_huttar@xxxxxxx>
Date: Mon, 3 Mar 2003 17:04:58 -0600

[Brian Martinez wrote:]

> > > <xsl:template match="/">
> > >   <textarea>
> > >     <xsl:copy-of select="*"/>
> > >   </textarea>
> > > </xsl:template>
> >
> > From: Lars Huttar
> > 
> > Just out of curiosity, and because I'm learning:
> > Wouldn't the above copy-of fail to copy any non-element 
> > children of the
> > root node?  E.g. comments and PI's...
> > (He did say "the entire XML document.")
> 
> No.  If the comments and PIs (by that I assume you mean processing
> instructions) are children of the root or context node, 
> xsl:copy-of will
> write them to the result tree.
> 
> cheers,
> b.

What I meant was that because your <xsl:copy-of> used select="*",
it would only operate on element children of the root node.
So comments/PIs would only be copied if they were descendants
of the document node, not if they were children of "/".

I tried this with a sample document, and sure enough, top-level
comments and processing instructions were lost.  That may not
matter to the original poster but I just wanted to make sure I
was understanding right.

 <?xml version="1.0"?>
 <?xml-stylesheet type="text/xsl" href="test-select.xsl"?>

 <!-- This comment is lost. -->
 <doc>The document node.
   <child>A child node.</child>
 </doc>

 <!-- Another pesky comment. -->
 <?pi r squared but we dont care?>


The output from your template:

  <textarea><doc>The document node.
    <child>A child node.</child>
  </doc></textarea>

Regards,
Lars


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



Current Thread
Keywords
xml