Я не могу заставить работу формулу в 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????
Test 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
[XPath может найти «цена + 1'] (http://xpathfiddle.net/LNZT5Z), но на php не все функции XPath реализованы, поэтому вы не можете использовать' price + 1'. Обновление PHP [не меняет его] (https://3v4l.org/KGDsW). – fusion3k
@ fusion3k Спасибо за ваш комментарий !! Кажется, вы совершенно правы! Пожалуйста, добавьте это как ответ) –