XSLT:从字符串中删除BOM字符

时间:2018-02-22 11:01:06

标签: xml xslt byte-order-mark

我正在使用XSLT-Transformation(2.0)。 问题如下:

在XSLT中,我正在检查字符串的值,如下所示:

<xsl:if test="$recordValue[1] = 'I'">

但该声明有时会失败,因为$recordValue[1]的值可能包含BOM符号/字符""

如何从$recordValue[1]中删除该BOM字符,以便如果变量包含BOM字符,“if”也会返回true?

更新 这些代码行也不起作用,如果$recordValue[1]中有BOM表字符,则仍然返回no:

<xsl:variable name="recordValue" select="tokenize(current(), ';')" />
<xsl:variable name="prozess"     select="replace($recordValue[1], '^', '')" />

<xsl:if test="$prozess = 'I'">

我试图转换的相关XML-Line是以下(在'I'之前有一个BOM符号):

<splitSegment><record>I;20.02.2018 11:58:35;02;113502190168;10;1</record></splitSegment>

替代解决方案(不解决问题本身): 以下解决方案删除BOM符号,但它确保相关if返回yes,即使字符串开头有BOM符号:

<xsl:if test="ends-with($prozess, 'I')">

0 个答案:

没有答案