XML Tutorial/XSLT stylesheet/strip space
Версия от 18:22, 25 мая 2010; (обсуждение)
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