如何从XML文档中删除所有文本

时间:2009-01-09 12:44:07

标签: xml xslt

如何删除所有文本,但保持结构完整?

例如:

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

转化为

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

所以属性值也是空的......

1 个答案:

答案 0 :(得分:5)

<?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>