在xPath 2.0中将xs:double转换为xs:integer

Cha*_*han 3 xml xpath type-conversion xpath-2.0

我试图在xPath 2.0中使用函数将xs:double转换为xs:integer(我不想使用XSLT).

number(//version//number/text())
Run Code Online (Sandbox Code Playgroud)

以上输出为 - 6.0(取数为6.0).我如何将其转换为6?

rau*_*ulk 12

XPath 2.0包含内置XML Schema类型的构造函数,因此您可以:

xs:integer(number(//version//number/text()))
Run Code Online (Sandbox Code Playgroud)

请参阅https://www.w3.org/TR/xpath-functions/#constructor-functions-for-xsd-types.我不知道你的环境是什么,但是在我的XML IDE中没有任何特殊的命名空间配置.您的里程可能会有所不同,在这种情况下,您需要找到如何将XML Schema名称空间绑定到xs:环境中的前缀.

顺便说一句,因为你正在使用//可能返回多个元素的表达,它可能会更安全指数//version,并//number[1],如果你只希望一个发生:(//version[1]//number)[1].