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

时间:2016-01-13 15:10:50

标签: xml xpath type-conversion xpath-2.0

我正在尝试将xs:double转换为带有函数的xPath 2.0中的xs:integer(我不想使用XSLT)。

number(//version//number/text())

以上输出为 - 6.0(数字为6.0)。我该如何将其转换为6?

2 个答案:

答案 0 :(得分:9)

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

xs:integer(number(//version//number/text()))

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

顺便说一句,由于您使用的//表达式可以返回多个元素,因此使用//version索引//number[1]可能更安全,以防您只预计出现一次:(//version[1]//number)[1]

答案 1 :(得分:1)

您可以使用floor,然后构建xs:integerxs:integer(floor(//version//number))