当对句点字符''进行标记时,XSLT的tokenize函数无法正常工作.
-
下面是我对逗号字符进行标记时会发生什么的示例:
XML文件:
<value>a,b,c</value>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
输出:
<firsttoken>a</firsttoken>
Run Code Online (Sandbox Code Playgroud)
-
这是相同的示例,但在句点字符上进行标记:
XML文件:
<value>a.b.c</value>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
输出:
<firsttoken/>
Run Code Online (Sandbox Code Playgroud)
-
我无法解释为什么它适用于逗号但不适用于句号.
. 是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>
Run Code Online (Sandbox Code Playgroud)
产量
<?xml version="1.0" encoding="UTF-8"?><firsttoken>a</firsttoken>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1882 次 |
| 最近记录: |