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
[XPathは '' price + 1''(http://xpathfiddle.net/LNZT5Z)を見つけることができますが、PHPではすべてのXPath関数が実装されているわけではないので、 '' price + 1''を使うことはできません。 PHPを更新してもそれは変わりません(https://3v4l.org/KGDsW)。 – fusion3k
@fusion3kコメントありがとうございます!あなたはまったく正しいようです!これを回答として追加してください) –