使用纯xpath 1.0计算来自不纯节点的平均数
是否可以将以下温度相加:使用纯xpath 1.0计算来自不纯节点的平均数,xpath,xpath-1.0,Xpath,Xpath 1.0,是否可以将以下温度相加: <days> <day><temperature>40 F</temperature></day> <day><temperature>45 F</temperature></day> <day><temperature>50 F</temperature></day> </days&g
<days>
<day><temperature>40 F</temperature></day>
<day><temperature>45 F</temperature></day>
<day><temperature>50 F</temperature></day>
</days>
是否可以在纯xpath 1.0中编写一个可以执行相同操作的表达式?对于xpath 1.0中关于在不纯节点上使用“sum”的问题,我认为可能不是
因此,总而言之,是否有任何方法可以仅使用xpath 1.0表达式从这些不纯节点获得平均温度?当然有<代码>平均值()在XPath 1.0中不可用,但
数字()
可用。使用Altova XMLSpy Enterprise 2016 rel试用。2.这与函数的可用性无关,语法是不允许的。例如:temperature[number()]
可以,但是temperature/number()
在xpath 1.0中触发异常对不起,但是对于上面的xpath 1.0表达式,我没有得到任何异常。我显式地将XPath查询模式设置为“1.0”。我的输出是:xs:double 45
Hmm。这个表达式在我的特定目标解析器(python lxml etree xpath)上引发了一个“无效表达式”异常。有趣的是,Altova解析器似乎更宽容。@KimHomann可能您的工具仍然(至少部分)以某种方式使用XPath 2.0引擎,因为这些工具支持它。尝试使用只实现XPath 1.0的东西,比如OP使用的.NET的XML API等lxml
。在这个XPath测试仪中测试XPath时,XPath也会引发异常:我确信使用纯XPath 1.0无法做到这一点,更自信的是知道这一点也是一样的
sum(//days/day/temperature/number(translate(.,' F',''))) div count(//days/day/temperature)
sum(//days/day/temperature/number(translate(.,' F',''))) div count(//days/day/temperature)