Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用纯xpath 1.0计算来自不纯节点的平均数_Xpath_Xpath 1.0 - Fatal编程技术网

使用纯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)