Simplexml xpath 公式不起作用

Simplexml xpath formula not working

我无法在 xpath 中使用公式。这是重现问题的部分代码:

//$val['path_xml'] = "price + 1"
$valID = $result[$i]->xpath($val['path_xml']);
echo "<br>".$val['path_xml']."<br>";
echo $result[$i]->price."<br>";
echo json_encode($valID)."<br>";

代码的输出是:

price + 1   // as expected - the correct path
525000      // just for test to check if price exists
[]          // empty array????

测试 2 - 只是为了确保一切正常:

//$val['path_xml'] = "price"
$valID = $result[$i]->xpath($val['path_xml']);
echo "<br>".$val['path_xml']."<br>";
echo $result[$i]->price."<br>";
echo json_encode($valID)."<br>";

输出:

price             // correct
525000            // ok
[{"0":"525000"}]  // OK

有人能说出为什么公式不起作用吗?也许需要更新版本的 PHP(当前为 5.6)或任何其他想法?

用这个在线工具检查过它,它完美地工作:http://www.freeformatter.com/xpath-tester.html#ad-output

fusion3k 的正确答案:XPath 可以找到 price+1 但在 php 上并没有实现所有的 XPath 函数,所以你不能使用 price+1。更新 PHP 不会改变它。