normalize-space 函数 (XPath)
返回去掉了前导、尾随和重复的空白的参数字符串。
string normalize-space(string)
备注
通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化。 如果省略了该参数,上下文节点的字符串值将标准化并返回。
以下函数调用返回“abc def”:
normalize-space(" abc def ")
如果参数不是字符串类型,将先转换成字符串再计算。 请参见下面的示例。
如果参数不是字符串类型,将先使用 string() 函数转换为字符串,然后计算该转换的结果。
警告
作为参数传递给此函数的节点集的字符串转换可能会产生意外的结果。有关详细信息,请参阅string 函数 (XPath)。
此函数区分大小写。
示例
以下示例使用非标准化的空白(单词间的制表符、前导和尾随的空格以及多个空格)标准化文本字符串块。 文本字符串是 <text> 元素的值。
XML 文件 (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 文件 (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>
该 XSLT 生成以下输出:
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."