How to remove all text from an XML document

How can I remove all the text but leave the structure intact?

eg:

<animals>
  <animal id="1">
    <type>cat</type>
    <food>
      <fav>miauwmjam</fav>
      <quantity unit="day">50g</quantity>
    </food>
  </animal>
</animals>

      

converted to

<animals>
  <animal id="">
    <type></type>
    <food>
      <fav></fav>
      <quantity unit=""></quantity>
    </food>
  </animal>
</animals>

      

so the vales attributes are empty ...

+1


source to share


1 answer


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <!-- copy all nodes -->
  <xsl:template match="node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- clear attributes -->
  <xsl:template match="@*">
    <xsl:attribute name="{name()}" />
  </xsl:template>

  <!-- ignore text content of nodex -->
  <xsl:template match="text()" />

</xsl:stylesheet>

      



+4


source







All Articles