我使用generate-id()生成ID,我使用字符串到代码点将此ID转换为数字。
如何从结果编号中删除空格?
所以,例如得到的代码点是“17 28 39 28”,但我需要“17283928”。
翻译不起作用,因为它需要一个字符串。我无法将数字转换为字符串,因为string()无法处理空格。
我怎样才能做到这一点?
答案 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"/>
的结果元素,在属性值中没有空格。