Xml XSLT函数从电话号码中过滤字母表和电话号码
我必须使用XSLT将xml数据转换为csv。 电话号码字段可能包含字母、空格、国家代码(+1代表美国)以及特殊字符。我必须删除空格、特殊字符、国家代码和字母,只保留10位数字的数值。我在下面创建了一个函数,除去字母表之外的这些。要删除这两组字母(2*26),如果我采用这种方法,我必须使用replace函数52次Xml XSLT函数从电话号码中过滤字母表和电话号码,xml,xslt,transform,transformation,Xml,Xslt,Transform,Transformation,我必须使用XSLT将xml数据转换为csv。 电话号码字段可能包含字母、空格、国家代码(+1代表美国)以及特殊字符。我必须删除空格、特殊字符、国家代码和字母,只保留10位数字的数值。我在下面创建了一个函数,除去字母表之外的这些。要删除这两组字母(2*26),如果我采用这种方法,我必须使用replace函数52次 <xsl:function name="wd:gePhone"> <xsl:param name="phone_number" />
<xsl:function name="wd:gePhone">
<xsl:param name="phone_number" />
<xsl:if test="$phone_number !=' '" >
<xsl:value-of select="normalize-space(replace(replace(replace(replace(replace(replace($phone_number,'-',''),'/',''),' ',''),'\)',''),'\(',''),'\+1',''))"/>
</xsl:if>
</xsl:function>
- 你有没有其他过滤字母表的方法或功能 从这样的电话号码中也可以看到吗
replace(replace($num, 'a', ''), 'b', '')
可以重写为:
replace($num, '[ab]', '')
这可以与两个字符的长字符串+1
一起使用:
replace($num, '[ab]|\+1', '')
并且可以使用字符类中的范围A-Z
匹配从A到Z的所有字符。因此,重复使用与示例中相同的字符,通过空间规范化,它将是:
normalize-space(
replace($num,'[-/,()a-zA-Z]|\+1',''))
请注意,字符
-
,因为它在两个字符之间的字符类中具有特殊含义,如果它是[
之后的第一个字符,而不是多个替换调用,每个替换调用只针对一个字符,则可以单独使用字符类:
replace(replace($num, 'a', ''), 'b', '')
可以重写为:
replace($num, '[ab]', '')
这可以与两个字符的长字符串+1
一起使用:
replace($num, '[ab]|\+1', '')
并且,可以使用character类中的范围A-Z
来匹配从A到Z的所有字符。因此,重复使用与您的示例中相同的字符,并使用空格规范化,这将是:
normalize-space(
replace($num,'[-/,()a-zA-Z]|\+1',''))
请注意,字符
-
,因为它在两个字符之间的字符类中具有特殊含义,如果它是[
之后的第一个字符,而不是多个替换调用,每个替换调用只针对一个字符,则可以单独使用字符类:
replace(replace($num, 'a', ''), 'b', '')
可以重写为:
replace($num, '[ab]', '')
这可以与两个字符的长字符串+1
一起使用:
replace($num, '[ab]|\+1', '')
并且,可以使用character类中的范围A-Z
来匹配从A到Z的所有字符。因此,重复使用与您的示例中相同的字符,并使用空格规范化,这将是:
normalize-space(
replace($num,'[-/,()a-zA-Z]|\+1',''))
请注意,字符
-
,因为它在两个字符之间的字符类中具有特殊含义,如果它是[
之后的第一个字符,而不是多个替换调用,每个替换调用只针对一个字符,则可以单独使用字符类:
replace(replace($num, 'a', ''), 'b', '')
可以重写为:
replace($num, '[ab]', '')
这可以与两个字符的长字符串+1
一起使用:
replace($num, '[ab]|\+1', '')
并且,可以使用character类中的范围A-Z
来匹配从A到Z的所有字符。因此,重复使用与您的示例中相同的字符,并使用空格规范化,这将是:
normalize-space(
replace($num,'[-/,()a-zA-Z]|\+1',''))
请注意,字符
-
,因为它在两个字符之间的字符类中具有特殊含义,如果它是[
之后的第一个字符,则可以自己使用。如果您只需要替换单个字符,还可以使用translate()函数
如果只需要替换单个字符,还可以使用translate()函数
如果只需要替换单个字符,还可以使用translate()函数
如果只需要替换单个字符,还可以使用translate()函数
是否可以将此电话号码的大小仅缩短10位?您可以使用substring()
进行基于长度的字符串操作。但您需要更准确地告诉我们您希望实现的目标(输入、预期输出等)是否可以将此电话号码的大小仅缩短10位?您可以使用substring()
进行基于长度的字符串操作。但您需要更准确地告诉我们您希望实现的目标(输入、预期输出等)。是否可以将此电话号码的大小仅缩短10位?您可以使用substring()
用于基于长度的字符串操作。但您需要更准确地告诉我们您希望实现什么(输入、预期输出等)。是否可以将此电话号码的大小仅缩短10位?您可以使用子字符串()
用于基于长度的字符串操作。但您需要更准确地告诉我们您希望实现什么(输入、预期输出等)