xslt 2.0从字符串到代码点中删除空格

时间:2015-12-11 16:04:03

标签: xslt-2.0

我使用generate-id()生成ID,我使用字符串到代码点将此ID转换为数字。

如何从结果编号中删除空格?

所以,例如得到的代码点是“17 28 39 28”,但我需要“17283928”。

翻译不起作用,因为它需要一个字符串。我无法将数字转换为字符串,因为string()无法处理空格。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

根据您的评论,您在属性值模板中使用string-to-codepoints(generate-id()),在属性值模板中,如果表达式求值为序列,则插入序列值的空格分隔列表。您需要在序列上使用string-join来构造单个字符串,或者您需要在<xsl:value-of select="string-to-codepoints(generate-id())" separator=""/>允许的范围内构造属性值模板之外的字符串。

以下是使用string-join的示例:

<xsl:template match="foo">
    <bar id="{string-join(for $n in string-to-codepoints(generate-id()) return string($n), '')}" />
</xsl:template>

将构造一个类似于<bar id="1004910149"/>的结果元素,在属性值中没有空格。