2016-03-31 9 views
1

xpathで数式を処理できません。ここでへのコードの一部は、問題を再現している:Simplexml 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)やその他のアイデアが必要なのでしょうか? fusion3kで正解をhttp://www.freeformatter.com/xpath-tester.html#ad-output

+0

[XPathは '' price + 1''(http://xpathfiddle.net/LNZT5Z)を見つけることができますが、PHPではすべてのXPath関数が実装されているわけではないので、 '' price + 1''を使うことはできません。 PHPを更新してもそれは変わりません(https://3v4l.org/KGDsW)。 – fusion3k

+0

@fusion3kコメントありがとうございます!あなたはまったく正しいようです!これを回答として追加してください) –

答えて

0

は、このオンラインツールでそれをチェックし、それが完璧に動作XPathはあなたが価格+ 1を使用することはできませんので、すべてのXPath関数は、実装されている価格+ 1が、PHPでない見つけることができます。 PHPを更新してもそれは変更されません。

関連する問題