XPath 1.0 总和和小数位

问题描述 投票:0回答:1

我有各种包含整数的 xml 节点,如下所示,它们根据 XML 文件中的变量拉入 Word 文档。

<example>0</example>
<example>2</example>
<example>0</example>
<example>1</example>

我目前正在使用以下方法来计算节点的值,而不是节点本身,以获得值的总数,在本例中,答案输出为 3。

sum(//project[1]/example[*]/total_examples[text()])

但是,当生成文档时,上述 XPath 输出为“3.0”而不是“3”。 我最初尝试翻译:

translate(sum(...), '.0','')

然而,这也进行了翻译,并删除了所有值总计为 0 的任何输出。 我也尝试过 Floor(...) ,它仍然产生小数位。

是否有办法从此输出中仅删除小数位?我无权访问自动生成的 XML 文件,因此无法使用 XSLT 变量或类似变量。 仅纯 XPath1.0 查询。

如果这是不可能的,有没有办法做类似的事情:

if total_examples != 0 
   //strip the .0
   translate(sum(//project[1]/example[*]/total_examples[text()]), '.0', '')
xml xpath
1个回答
0
投票

您可以使用

fn:format-number()
十进制格式 来控制数字的格式并确保它没有
.0

fn:format-number(sum(//project[1]/example[*]/total_examples[text()]), '#')
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.