gpt4 book ai didi

XSLT 2.0 : Tokenize does not work on period character (full stop/dot)

转载 作者:行者123 更新时间:2023-12-01 00:30:08 25 4
gpt4 key购买 nike

XSLT 的标记化函数在对句点字符“.”进行标记化时没有像我预期的那样工作

--

这是一个示例,说明当我标记逗号字符时会发生什么:

XML 文件:

<value>a,b,c</value>

XSLT 文件:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<firsttoken><xsl:value-of select="tokenize(/value,',')[1]" /></firsttoken>
</xsl:template>
</xsl:stylesheet>

输出:

<firsttoken>a</firsttoken>

--

这是相同的示例,但在句点字符上进行了分词:

XML 文件:

<value>a.b.c</value>

XSLT 文件:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<firsttoken><xsl:value-of select="tokenize(/value,'.')[1]" /></firsttoken>
</xsl:template>
</xsl:stylesheet>

输出:

<firsttoken/>

--

我不明白为什么它适用于逗号但不适用于句点。

最佳答案

. 是 XSLT(上下文节点的简写)和正则表达式(任何字母数字字符)中的特殊字符。

如果你想匹配文字“.”你需要在前面加一个反斜杠来转义它。

I can't work out why it works for commas but not for period.

token 化在一段时间内有效。只是 . 一开始就没有被解释为句点。

样式表

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<firsttoken><xsl:value-of select="tokenize(/value,'\.')[1]" /></firsttoken>
</xsl:template>
</xsl:stylesheet>

输出

<?xml version="1.0" encoding="UTF-8"?><firsttoken>a</firsttoken>

关于XSLT 2.0 : Tokenize does not work on period character (full stop/dot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22251636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com