Copying Nodes

You can use the <xsl:copy> element to copy nodes, specifying just what parts you want to copy. The default rule for elements is that only the text in the element is copied . However, you can change that with <xsl:copy> , which can copy whole elements, text nodes, attributes, processing instructions, and more, as you direct.

Here's an example. In this case, I'll strip all comments, processing instructions, and attributes out of ch13_01.xml, simply by copying only text and elements:

Listing ch13_23.xsl
 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="*  text()">  <xsl:copy>   <xsl:apply-templates select="*  text()"/>   </xsl:copy>  </xsl:template> </xsl:stylesheet> 

Here's the output of this transformation:

 <?xml version="1.0" encoding="UTF-8"?>  <PLANETS>   <PLANET>     <NAME>Mercury</NAME>     <MASS>.0553</MASS>     <DAY>58.65</DAY>     <RADIUS>1516</RADIUS>     <DENSITY>.983</DENSITY>     <DISTANCE>43.4</DISTANCE>   </PLANET>     .     .     . 


Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net