normalize-space Function
Returns the argument string with the leading, trailing, and repeating white spaces stripped.
string normalize-space(string)
Remarks
White space is normalized by stripping leading and trailing white space and replacing sequences of white space characters with a single space. If the argument is omitted, the string-value of the context node is normalized and returned.
The following function call returns "abc def":
normalize-space(" abc def ")
If an argument is not of the type string, it is first converted to a string and then evaluated. See the example below.
Example
The following example normalizes a block of text string with unnormalized white spaces (tabs, leading and trailing spaces, and multiple spaces between words. The text string is the value of an <text>
element.
XML File (normSpace.xml)
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="normalizeSpace.xsl"?> <text> This is a test, with a lot of irregular spacing and waiting to be normalizaed. </text>
XSLT File (normSpace.xsl)
<?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:template match="/text"> Unnormalized: "<xsl:value-of select='.'/>" Normalized: "<xsl:value-of select='normalize-space()'/>" </xsl:template> </xsl:stylesheet>
This XSLT produces the following output:
Unormalized: " This is a test, with a lot of irregular spacing and waiting to be normalizaed. " Normalized: "This is a test, with a lot of irregular spacing and waiting to be normalized."
See Also
Data Types in Schemas | XDR Schema Data Types Reference | XML Data Types Reference