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 不会改变它。
我无法在 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 不会改变它。