Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 是数字的,在XPath或XSL中是字母/数字的_Xml_Xslt_Xpath - Fatal编程技术网

Xml 是数字的,在XPath或XSL中是字母/数字的

Xml 是数字的,在XPath或XSL中是字母/数字的,xml,xslt,xpath,Xml,Xslt,Xpath,我想知道是否可以使用XPath或XSL来确定XML节点值是数字还是字母/数字。(它是用户输入的数据..因此可以是..) 我在XPath中搜索某种函数来实现这一点。。但是我找不到 例如: <example> <test1 attribute="123">12dfffg23</test1> <test2 attribute="a34">123456</test2> </example> 我希望以下是数字: /e

我想知道是否可以使用XPath或XSL来确定XML节点值是数字还是字母/数字。(它是用户输入的数据..因此可以是..)

我在XPath中搜索某种函数来实现这一点。。但是我找不到

例如:

<example>
    <test1 attribute="123">12dfffg23</test1>
    <test2 attribute="a34">123456</test2>
</example>
我希望以下是数字:

/example/test1/@attribute
/example/test2
/example/test1
/example/test2/@attribute
我希望以下是字母/数字:

/example/test1/@attribute
/example/test2
/example/test1
/example/test2/@attribute
是否可以使用XPath或XSL中的函数实现这一点


谢谢在XPath 1.0中,D

用于测试给定字符串是否包含数字:

number(someString) = number(someString)
使用此选项测试给定字符串是否仅由字母数字字符(字母或数字)组成:

not(translate(someString, $alphabetLowerAndUpperAndDigits, ''))
其中,$AlphabetLowerandUpperandDigits可替换为所有小写和大写字母以及字母表中的数字(0-9)(对于拉丁字母表,这是:

'abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz012456789'

XPath 2.0中的(以上所有加)


好问题(+1)。有关XPath 1.0解决方案,请参阅我的答案。:)对于
匹配
函数,您不需要锚定正则表达式(
'^\c+$'
)-否则,如果至少存在一个字母数字字符,它不总是匹配吗?@psmears:谢谢,这是正确的--我已经更新了答案。我认为这不能解决问题。。该值可以包含字母和数字,并被视为“alpha”,但“numerical”应仅表示数字。这里这些仅检查字符串是否包含数字或字符串是否仅为alpha。你知道我的意思吗?@iHeartGreek:不,在你的问题中,你问的是如何验证一个值是一个数字,以及如何验证一个值是“alpha”。我回答了这些问题。如果您对其他内容感兴趣,请修改问题或提出新问题。
number(someString)=number(someString)
为什么有效?似乎“number(someString)=someString”更可能做你想做的事?还是我误解了什么?