XML Tutorial/XSLT stylesheet/strip space

Материал из Web эксперт
Версия от 08:26, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

strip-space elements="*"

File: Data.xml
<colors>
  <color>red</color>
  <color>yellow</color>
  <color>blue</color>
  <!-- 
    Next color element has whitespace content. 
  -->
  <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="*" />
  <xsl:preserve-space elements="codeListing sampleOutput" />
  <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><!-- 
    Next color element has whitespace content. 
  --><color/></colors>


strip-space elements="colors"

File: Data.xml
<colors>
  <color>red</color>
  <color>yellow</color>
  <color>blue</color>
  <!-- 
    Next color element has whitespace content. 
  -->
  <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="colors" />
  <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><!-- 
    Next color element has whitespace content. 
  --><color/></colors>


strip space from elements

File: Data.xml
<?xml version="1.0" encoding="UTF-8"?>
<review>
  <comment>
   test
  </comment>
</review>

File: Transform.xslt

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:strip-space elements="name email author review"/>
  
  <xsl:template match="comment">
    <xsl:value-of select="normalize-space(.)"/>
  </xsl:template>
</xsl:stylesheet>
Output:
test