xsl-list
[Top] [All Lists]

RE: Select entire XML doc

2003-03-03 16:04:58
[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



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