XML/XSLT stylesheet/strip space

Материал из Web эксперт
Перейти к: навигация, поиск

strip-space elements="*"

File: Data.xml
<?xml version="1.0"?>
<python version="2.3">
  <keyword>while</keyword>
  <keyword>continue</keyword>
  <keyword>def</keyword>
  <keyword>elif</keyword>
  <keyword>assert</keyword>
</python>

File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:saxon="http://icl.ru/saxon"
  extension-element-prefixes="saxon">
  <xsl:output method="xml" saxon:indent-spaces="2" indent="yes" />
  <xsl:strip-space elements="*" />
  <xsl:template match="python">
    <xsl:copy>
      <xsl:attribute name="version"><xsl:value-of
          select="@version" />
      </xsl:attribute>
      <xsl:apply-templates>
        <xsl:sort />
      </xsl:apply-templates>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="keyword">
    <xsl:copy-of select="." />
  </xsl:template>
</xsl:stylesheet>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<python version="2.3">
   <keyword>assert</keyword>
   <keyword>continue</keyword>
   <keyword>def</keyword>
   <keyword>elif</keyword>
   <keyword>while</keyword>
</python>



strip-space elements="color"

File: Data.xml
<colors>
  <color>red</color>
  <color>yellow</color>
  <color>blue</color>
  <color></color>
</colors>
File: Transform.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">
  <xsl:output method="xml" omit-xml-declaration="yes" />
  <xsl:strip-space elements="color" />
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()" />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
Output:
<colors>
  <color>red</color>
  <color>yellow</color>
  <color>blue</color>
  <color/>
</colors>