我有一个包含以下内容的xml文件:
<Xavor>
<Dev>
<Emp>1</Emp>
<Floor>1</Floor>
<Salary>1200.4</Salary>
</Dev>
<Dev>
<Emp>2</Emp>
<Salary>3100.8</Salary>
</Dev>
<Dev>
<Emp>3</Emp>
<Floor>1</Floor>
</Dev>
Run Code Online (Sandbox Code Playgroud)
我想用sum函数计算前两个员工的工资总和.我来到这个XPath:
sum(/Xavor/Dev[2]/Salary/text())
Run Code Online (Sandbox Code Playgroud)
但这只返回第二个工资值,即3100.8!!! 当工资中只有非浮点数时,这个XPath工作得很好.请帮帮我.
Rub*_*ias 11
试试这个:
sum(/Xavor/Dev[position() <= 2]/Salary/text())
Run Code Online (Sandbox Code Playgroud)
除了@Rubens Farias的正确答案之外,如果你想要总结所有Dev指定(数字)工资的薪水,请使用:
sum(/*/Dev/Salary[number(.) = number(.)])
Run Code Online (Sandbox Code Playgroud)