Publishers of technology books, eBooks, and videos for creative people

Home > Articles > Web Design & Development

  • Print
  • + Share This
  • 💬 Discuss

From the author of

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 planets.xml, simply by copying only text and elements:

<?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>
    .
    .
    . 
  • + Share This
  • 🔖 Save To Your Account
Inside XML

From the author of

Inside XML

Discussions

comments powered by Disqus